方法1:将构造函数修饰成私有时,该类不能被继承。你也许可能会问,构造函数声明成私有,在外面使用时就不能创建对象了,不能创建对象的类还有意义吗?答案是有意义,单例模式就是将类的构造函数声明成私有的。

#includeusing namespace std;class A {private:
    A() {}
};class B : public A {

};int main()
{
    B a;    return 0;
}

编译直接报错:说明构造函数私有,就不能被继承了。

C++实现不可被继承的类_C++

 

 

  方法2:C++11引入了final关键字,被final修饰的类不能被继承,被final修饰的的方法不可被重写。

// final修饰的类不能被继承
#include

编译直接报错:

C++实现不可被继承的类_C++_02

 

 

// final修饰的函数不可被重写
#include

编译直接报错:

C++实现不可被继承的类_C++_03