创建一个不能被继承的类

这方法倒是好暴力!
其实我们知道,如果继承的话,编译器在派生类的构造函数中插入一些代码(嗯,是的插入代码,这个不足为怪吧,像
有些合的构造函数(就是编译器帮你生成的,非自己写的)那也是插入的代码)。那么在派生类的构造函数中会插入
基类的构造函数的代码。
#ifndef CLASS_NO_INHERIT_H
#define CLASS_NO_INHERIT_H
class NoInherit {
private:
	NoInherit(){
		std::cout<<"creating NoInherit"<<std::endl; 
	}
	~NoInherit(){
		std::cout<<"deleting NoInherit"<<std::endl; 
	}
public:
	static NoInherit* createNoInherit(){
		return new NoInherit(); 
	}
	static void deleteNoInherit(NoInherit *delNoInherit){
		delete delNoInherit; 
	}
}; 

#endif 

  





原文地址:https://www.cnblogs.com/yml435/p/4657115.html