两个类互为友元,其中一个类调用另一个类的成员函数为什么还要报错,另外show_moe(class Moe moe);是什么含义代码如下

wolfza 2002-06-22 10:48:31
#include <iostream.h>
#include <string.h>
class Curly
{ public:
Curly(char *msg){strcpy(message,msg);};
void show()
{cout<<message<<endl;};
friend class Moe;
void show_moe(class Moe moe);
private:
char message[256];
};
class Moe
{public :
Moe(char *msg){strcpy(message,msg);};
friend class Curly;
void show_message(void){cout<<message<<endl;};

void show_curly(class Curly curly);
private:
char message[256];
};
void Curly::show_moe(class Moe moe){cout<<moe.message<<endl;};
void Moe::show_curly(class Curly curly){cout<<curly.message<<endl;}
void main(void)
{class Moe moe("Nuck,nuck,nuck");
class Curly curly("Whoop,whoop,whoop");
moe.show_message();
moe.show_curly(curly);
//下行报错 'show_message' : is not a member of 'Curly'

curly.show_message();
curly.show_moe(moe);
}
...全文
150 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ywls 2002-06-22
  • 打赏
  • 举报
回复
curly.show_message();//友元并不代表包含了它的成员,只是你可以在一个类中访问其友元类的私有成员罢了,如果一定要这样用,可以用继承机制


LionEagle 2002-06-22
  • 打赏
  • 举报
回复
类curly没有show_message这个成员函数

A为B的友员只是说A可以调用B的所有成员函数,使用B的所有成员变量,但并不意味着A同时拥有B的这些成员变量和成员函数,只是可以用而已。

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧