c++类防止被继承的一种方法
2014-01-13 15:31
495 查看
熟悉c++和java的人都知道,java中的类如果不想被继承,可以在类的前面加final关键字,这样这个类就不能被继承了,而c++中没有这个关键字,那如何防止一个类被继承呢?
下面给出一种利用c++中的友元类的特性----友元不能被继承。
下面给出一种利用c++中的友元类的特性----友元不能被继承。
#include "stdafx.h" #include <iostream> using namespace std; template <class T> class CFinalClass { friend T; private: CFinalClass(){} ~CFinalClass(){} }; class CXX { public: CXX(){ cout << "I am CXX!"<<endl;} ~CXX(){} }; class CParent:virtual public CFinalClass<CParent>,public CXX { public: CParent(){} ~CParent(){} }; class CChild:public CParent{}; int _tmain(int argc, _TCHAR* argv[]) { CParent p; //CChild c; return 0; }还需要强调一下,调用CFinalClass类,一定要虚继承。虚继承的一个特征就是虚基类的构造函数由最终子类负责构造!
相关文章推荐
- Win7运行vc++6.0打开显示Microsoft(R) Developer Studio已停止工作解决方法
- C++中的声明与定义
- DTrace C++ Mysteries Solved
- c++11的多线程支持二(线程参数)
- 也谈C++中char*与wchar_t*之间的转换
- C++ 杂记
- 【C++】浙大PAT (Basic Level)1005. 继续(3n+1)猜想 (25)
- C++模板拷贝构造
- c++11的多线程支持一(线程启动)
- c++读取txt文件数据
- C++中两个类相互包含引用的相关问题
- 一些C++源码站点(持续更新)
- Cracking The Coding Interview 3rd -- 1.4
- C++派生类与基类构造函数调用次序
- 图解排序算法及C语言实现之 ------ 快速排序:Quick Sort
- c语言分数计数程序
- Closest Pair of Points - C++
- C++实现CString和string的互相转换
- C语言字符串数组的使用
- 用C++ 自娱自乐