您的位置:首页 > 编程语言 > C语言/C++

如何让一个类不能被继承

2015-12-03 11:56 225 查看
要想让一个类不能被继承,已知方法有两种。一是,将类的构造函数定义为带private属性。二是,将该类虚继承一个父类,但是该父类的构造函数是带private属性的。

关于第二个方法可行的依据是:

1)派生类不能调用父类private属性的构造函数。

2)建立一个对象时,如果这个对象中含有从虚基类继承来的成员,则虚基类的成员是由最远派生类的构造函数通过调用虚基类的构造函数进行初始化的。

3)以上两点相互矛盾,使得该类无法被继承。

如何实例化构造函数是private属性的类?

只要有一个函数能够访问private成员就行了。这个就有两种方法。

一是,在类中定义一个static 成员函数。

二是,在类中定义一个friend成员。

具体代码可参考:

http://blog.csdn.net/lazy_tiger/article/details/2224899
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  继承 C++