1 使用final
EG:
class B final
{
};
2 使用友元类和虚继承
EG:
class A
{
private:
A()
{
cout << "A" << endl;
}
friend class B;
};
class B:virtual public A
{
};
上述示例中,类B不可以被继承,因为如果一个类继承了B,由于B虚继承A,所以这个继承B的类在构造的时候必须调用A的构造函数,但是由于类A的构造函数为私有类型,所以矛盾