问:为私有虚函数设置友元类,是设置在基类还是子类。
答:基类
代码
#include <QCoreApplication>
#include <QDebug>
class A{
public:
virtual ~A(){}
private:
virtual void fun(){
qDebug()<<"A fun";
}
friend class B;
};
class A1: public A{
public:
virtual ~A1(){}
private:
virtual void fun(){
qDebug()<<"A1 fun";
}
//friend class B;
};
class B{
public:
void fun(){
A* a1 = new A1();
a1->fun();
delete a1;
}
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
B b;
b.fun();
return a.exec();
}
运行结果
15:06:48: Starting D:\qts\untitled\build\Desktop_x86_windows_msvc2022_pe_64bit-Debug\untitled.exe...
A1 fun
总结
1.非公有虚函数设置友元类,设置在基类上就可以。
2.私有函数可以抽象
579

被折叠的 条评论
为什么被折叠?



