在C++里写一个不能被继承的类(2)

上一篇博客中讲述了一种在C++中实现Final类的例子,但是后来想想那个办法有点绕,其实只要想办法让孙子类无法调用基类的构造函数就可以了,可以有很简单的办法能做到,不需要使用模板呀、友元呀那些比较复杂的机制。具体的代码如下:

只要理解我标红的地方就可以了,把AbstractFinal的构造函数设置成私有的,然后FinalClass以私有虚继承的方式继承AbstractFinal类,这个时候,再有FinalClass的子类就无法调用AbstractFinal的构造函数(对其是私有的),所以也就形成了一个无法被继承的类。

2010年10月1日 | 归档于 C++, 学习, 技术
标签: ,
本文目前尚无任何评论.

发表评论

XHTML: 您可以使用这些标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">