关于c++禁止继承的问题
请问我用以下方法来实现c++中类的禁止继承是否正确呢?
class A
{
friend class B;
private:
A(){}
~A(){}
};
class B:virtual class A
{
};
class C:public B
{
};
禁止C继承B
[解决办法]
父类的构造函数为private时,就禁止继承了 。。。
[解决办法]
class B:virtual class A
{
};
这个virtual这是什么东西 ,好像还没听所过virtual继承
你不想让C继承B 那就不继承不就行了
我不明白你禁止继承是什么意思
[解决办法]
父类构造为private非常不好,那父类自己也不能实例化了。
[解决办法]
你这个B虚继承也是失败的吧
[解决办法]
#include <iostream>#include <stdlib.h>using namespace std;class Singleton{private: Singleton() // private构造函数 { cout << "Singleton::Constructor" << endl; } static Singleton* sg; // 私有静态变量,其类型为Singleton* // 形如Singleton sg;这样的声明会出编译时错误public: static Singleton* getInstance() // public成员函数getInstance() { cout << "Singleton::getInstance" << endl; if(!sg) { sg = new Singleton(); // (1)在这个地方new了一个对象,但是在什么地方delete呢? } return sg; }};Singleton* Singleton::sg = 0;int main(void){ Singleton *sg = Singleton::getInstance(); return 0;}
[解决办法]
http://blog.csdn.net/liuxizhiyi/article/details/3201128
[解决办法]
你这个就不但禁止继承 而且还禁止在栈上创建对象。
[解决办法]
http://www.cppblog.com/sunus/archive/2007/08/14/17532.html
[解决办法]
sealed是.net里面的吧??是不是需要托管才能用??