class A;
class Base
{
private:
Base(){}
friend class A;//友元关系不可继承
};
class A:virtual public Base
{
public:
A(int a = 0) :ma(a){}
protected:
int ma;
};
class B;virtual public Base
{
};
int main()
{
A a(10);//类A 可以正常使用 但是不能被继承
B b;
return 0;
}
template<typename C>
class Base
{
private:
Base(){}
class C;
};
class A:virtual public Base<A>
{
public:
A(int a = 0) :ma(a){}
protected:
int ma;
};
class B :public A
{
};
int main()
{
A a(10);
B b;
return 0;
}