关于友元类的小问题?

wyjjsn 2010-01-12 05:25:05

//比如:
class A//比如A类中有个友元类B
{
public:...
friend class B;
...
private:
int n;


}
//这样跟C类继承于A类
class C:public A
{
...
}

//那都用继承不就行了?还有必要用友元类吗,或者说什么时候用友元类?

...全文
79 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
daixie06 2010-01-12
  • 打赏
  • 举报
回复
类B可以访问类A的私有成员变量,而类C是不可以访问类A的私有变量的
  • 打赏
  • 举报
回复
友元关系是不继承的。

小小攻城师 2010-01-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 wyjjsn 的回复:]
C/C++ code//比如:class A//比如A类中有个友元类B{public:...
friendclass B;
...private:int n;


}//这样跟C类继承于A类class C:public A
{
...
}//那都用继承不就行了?还有必要用友元类吗,或者说什么时候用友元类?

[/Quote]
继承你可以访问基类的私有成员?
而且你继承之后你还有一大堆在基类中继承来的东西要处理
友元类就相当简单了。只要是友元他就可以方便的对类中的所有东西进行操作
概念这些东西理解上是有些难,多做点题
理解就会好一点
耍宝王 2010-01-12
  • 打赏
  • 举报
回复
打个比喻:你可以继承你父亲优良的基因,但继承不了你父亲的个人思想,而你的父亲却可以和他的朋友交流个人思想

P.S 比喻可能不恰当,包含 包含
traceless 2010-01-12
  • 打赏
  • 举报
回复
那样的代码只是为了学习友元概念,实际开发中能避免尽量避免
macrojj 2010-01-12
  • 打赏
  • 举报
回复
继承的类之间是有特殊关系的。
但是友元类 纯粹是为了访问私有变量方便的
xixiaoliu 2010-01-12
  • 打赏
  • 举报
回复
不懂 lz 的意思。

继承和友元不重叠阿,也不能为了访问某各类成员就去继承他啊
pengzhixi 2010-01-12
  • 打赏
  • 举报
回复
知道你这个继承的派生类和基类是什么关系不?

64,318

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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