创建一个不能被继承的类

这方法倒是好暴力!
其实我们知道,如果继承的话,编译器在派生类的构造函数中插入一些代码(嗯,是的插入代码,这个不足为怪吧,像
有些合的构造函数(就是编译器帮你生成的,非自己写的)那也是插入的代码)。那么在派生类的构造函数中会插入
基类的构造函数的代码。
#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
浙公网安备 33010602011771号