友元c++
#include <iostream>
#include <string>
using namespace std;
class Lovers//爱人关系,基类
{
public:
Lovers(string theName);//
void kiss(Lovers *lover);
void ask(Lovers *lover, string something);
protected:
string name;
friend class Others; //祸根,交友不慎。。。。 (友元关系),则Others可以访问name
};
class Boyfriend:public Lovers//Boyfriend子类,继承Lovers基类
{
public:
Boyfriend(string theName);
};
class Girlfriend:public Lovers//girlfriend子类,继承Lovers基类
{
public:
Girlfriend(string theName);
};
class Others//Others类 ,并没继承Lovers基类
{
public:
Others(string theName);
void kiss(Lovers *lover);
protected:
string name;
};
Lovers::Lovers(string theName)//Lovers类的构造函数
{
name = theName;
}
void Lovers::kiss(Lovers *lover)//Lovers *lover表示定义Lovers类的一个对象*lover
{
cout << name << "亲亲我们家的" << lover->name << endl;
}
void Lovers::ask(Lovers *lover,string something)
{
cout << "宝贝儿" << lover->name << "帮我" << something << endl;
}
Boyfriend::Boyfriend(string theName):Lovers(theName)
{
}
Girlfriend::Girlfriend(string theName):Lovers(theName)
{
}
Others::Others(string theName)
{
name = theName;
}
void Others::kiss(Lovers *lover)
{
cout << name << "亲一下" << lover->name << endl;
}
int main()
{
Boyfriend boyfriend("A君");
Girlfriend girlfriend("B妞");
Others others("路人甲");
girlfriend.kiss(&boyfriend);
girlfriend.ask(&boyfriend,"洗衣服啦");
cout << "\n当当当当!传说中的路人甲登场啦。。。。\n";
others.kiss(&girlfriend);
return 0;
}