目录
一、如何设计不能被继承的类
有两种方式
1、对于C++98,可以将构造函数设置为私有
2、对于C++11,用final修饰类
二、代码演示
1、基类构造函数设置为私有
为什么基类构造函数设置为私有就不能被继承?
1、私有的构造函数对子类是不可见的
2、派生类调用构造函数必须先调用父类的构造函数初始化父类的那一部分

//1、对于C++98,可以将构造函数设置为私有
class A
{
public:
private:
A() {}
};
class B : public A
{
public:
};
int main()
{
B b;//error A不能被B继承
}
//////////////////////////////////////////////
//基类构造函数设置为私有后,可以通过静态成员函数来获取基类对象
class A
{
public:
static A GetObject()
{
return A();
}
private:
A() {}
};
class B : public A
{
public:
};
int main()
{
A::GetObject();
}
2、用final修饰类

3、final关键字
final关键字有两个作用
一个是修饰类,被修饰的类不能被继承
一个是修饰虚函数,虚函数不能被重写
