用C++实现一个不能被继承的类
来源:互联网 发布:如何玩好刘邦知乎 编辑:程序博客网 时间:2024/06/15 09:01
不能被继承?按照继承的理论知识分析,我们只要把类的构造函数设置为私有的,即可解决问题。
因为那样的话,子类就没有办法访问基类的构造函数,从而就阻止了进行子类构造对象的任务实现,也就达到了不可
继承的目的。
定义静态方法,在方法内部实现一个对象,然后返回它的指针。这样就可以通过类访问静态方法返回对象指针,
这样
我们再设计一个析构函数就可以了,这样大功告成了
代码如下
class A{public:static A * Construct(int n){A *pa = new A;pa->num = n;cout<<"num is:"<<pa->num<<endl;return pa;}static void Destruct(A * pIntance){delete pIntance;pIntance = NULL;}private:A(){}~A(){}public:int num;};void main(){A *f = A::Construct(9);cout<<f->num<<endl;A::Destruct(f);}
不过这样只能在堆上建对象,不能自由的在堆与栈上。
下面从虚基类说起,虚基类使得从多个类派生出的对象只继承一个基类对象。例如B:public A,C:public A,D:public B,public C,D从B,C派生,而B和C都继承A,那么D里面将会有A的2个副本,如果A有变量声明的话,那么在D里面将会被声明2次,编译错误!所以产生了虚基类!《后面补充》
template <typename T> class Base{friend T;private:Base() {}~Base() {}};class Finalclass : virtual public Base<Finalclass>{ public:Finalclass() {}~Finalclass() {}};void main(){Finalclass *p = new Finalclass; //堆上对象Finalclass fs; //栈上对象}
- 【c++】实现一个不能被继承的类
- 用C++实现一个不能被继承的类
- 用C++实现一个不能被继承的类
- 用C++实现一个不能被继承的类
- C++实现一个不能继承的类
- 试题:实现一个不能被继承的类(上)
- 试题:实现一个不能被继承的类(下)
- 试题:实现一个不能被继承的类(续之下)
- 试题:实现一个不能被继承的类(续之上)
- C++实现一个不能被继承的类
- C++实现一个不能被继承的类
- C++实现一个不能被继承的类
- c++中如何实现一个不能被继承的类
- 面试题:C++实现一个不能被继承的类
- 用C++设计一个不能被继承的类实现java final的作用
- 设计一个不能被继承的类
- 设计一个不能被继承的类
- 设计一个不能被继承的类
- windows下eclipse中,涉及源码编译的apk开发——使用系统签名机制
- hibernate.cfg.xml
- SPOJ NWERC11C Movie collection
- 解决:Failed to fetch URL https://dl-ssl.google.com/android/repository/addons_li ..
- bzoj 2653 middle 二分+ 可持久化数据结构(可持久化感悟)
- 用C++实现一个不能被继承的类
- fprintf、printf、sprintf、fscanf、scanf、sscanf 格式化输入输出
- dijsttra 邻接表+优先队列
- cocos2d-x——CCLabelBMFont(汉字艺术文本)
- 浅谈c#中的“事件”第一篇
- SPI、I2C、UART三种串行总线的区别
- QTableView的表格项中加入图标的方法
- 出租司机给我上的MBA课(转载)
- Visual Studio 2010 MSDN Help Library文档位置、错误、重新安装及安装注意事项