C++派生类加上友元函数后,基类指针就不能指派生了,有什么解决办法
有一个虚基类,派生类中重载基类的成员函数,并且派生类中增加了两个友元函数,为什么定义了一个基类指针,它不能指向派生类啊。比如A* p;   p=new B;报错

2个回答

可能是友元类只和B是友元,和A不是,如果生成了A的指针,那么友元访问的时候就找不到函数地址。
所以编译器拒绝这种实例化。
我个人感觉友元是一种比较苟且的语法,和面向对象的思想是对立的,只是有时候使用比较方便。
通常大部分时候是能避免友元的使用的,只是相对会繁琐一点。
如果要解决这个问题,开源通过接口来实现友元提供的功能。

是用的public方式继承吗?

qq_20961937
世界上还是穷人多 是的
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!