您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
第20讲-一种特殊的友情 友元類
发布时间:2021-05-17 17:39:32编辑:雪饮阅读()
友元类
一个类 A 可以将另一个类 B 声明为自己的友元,类 B 的所有成员函数就都可以访问类 A 对象的私有成员(包括私有成员和保护成员)。
一個實際的例子如:
#include <iostream>
#include <string>
//愛類
class Lovers
{
public:
Lovers(std::string theName);
void kiss(Lovers *lover);
void ask(Lovers *lover,std::string something);
protected:
std::string name;
//友元類Other
friend class Others;
};
Lovers::Lovers(std::string theName){
name=theName;
};
void Lovers::kiss(Lovers *lover){
std::cout<<name<<"親親我們傢的"<<lover->name<<std::endl;
};
void Lovers::ask(Lovers *lover,std::string something){
std::cout<<"寶貝"<<lover->name<<"幫我"<<something<<std::endl;
};
//男朋友類
class Boyfriend:public Lovers{
public:
Boyfriend(std::string theName);
};
Boyfriend::Boyfriend(std::string theName):Lovers(theName){
};
//女朋友類
class GirlFriend:public Lovers{
public:
GirlFriend(std::string theName);
};
GirlFriend::GirlFriend(std::string theName):Lovers(theName){
}
//其它類(路人類)
class Others{
public :
Others(std::string theName);
void kiss(Lovers *lovers);
protected:
std::string name;
};
Others::Others(std::string theName){
name=theName;
}
void Others::kiss(Lovers *lover){
std::cout<<name<<"親一下"<<lover->name<<std::endl;
}
int main(){
Boyfriend by("A軍");
GirlFriend gr("B妞");
Others others("路人");
gr.kiss(&by);
gr.ask(&by,"洗衣服啦");
std::cout<<"\n噹噹噹!路人登場。。。。\n";
others.kiss(&gr);
return 0;
}
編譯運行結果如:
关键字词:友元類
上一篇:第19讲-覆盖方法和重载方法
下一篇:第21讲-静态属性和静态方法
相关文章
-
无相关信息