【C++】实现一个不能被继承的类

在我的上篇博客里,我讲到继承中的作用域和派生类的默认成员函数https://blog.csdn.net/ly_6699/article/details/88805464,
并留下一个问题:怎样实现一个不能被继承的类!

这道题的解题思路有两个:
1.在C++98 里,我们可以将构造函数私有化,这样派生类无法调用基类的构造函数,便无法继承。
具体代码如下:

class NonInherit
{
public:
//这个函数保证对象在类外可以被访问,但无法被继承
	static NonInherit GetInstance()      
	{
		return NonInherit();
	}
private:
	NonInherit()     //对象在类内完成创建
	{}
};

2. 在C++11 里,我们可以用关键字final,禁止类被继承
具体代码的实现如下:

class NonInherit final
{};

猜你喜欢

转载自blog.csdn.net/ly_6699/article/details/88805277