设计一个不能被继承的类:要求是该类可以像普通类一样正常使用,但是不能被继承
先看一下第一个代码:
class Base
{
private:
Base(int val=0):_val(val){}
private:
int _val;
};
class Dreive:public Base
{
public:
void print()
{
cout<<"Derive::"<<endl;
}
};
int main()
{
Dreive A;
A.print();
return 0;
}
实现是将构造函数放在私有下面。虽然不能被继承,但同时自己也无法在类外调用构造函数构造出一个对象出来。
/
再来看看第二个代码:
class Base
{
private:
Base(int val=0):_val(val){}
private:
int _val;
friend class B;
};
class B:virtual public Base
{
public:
void print()
{
cout<<"B"<<endl;
}
};
class c:public B
{
public:
void print()
{
cout<<"C