声明一个辅助类A,将类A的构造函数声明为私有,然后声明一个类B,将A类声明为友元类,然后再让B类虚继承A类。这样我们的类B就无法被继承啦!代码如下,编译报错,C类的默认构造函数已删除。
#include<iostream>
using namespace std;
class A {
private:
A() {
}
};
class B : virtual A{
friend A;
};
class C :B {
public:
void fun() {
cout << "hello" << endl;
}
};
int main() {
C c;
c.fun();
return 0;
}