派生类可以做成单例模式么?

全速前行
博客专家认证
2011-04-30 10:19:39
如题,他的父类的构造函数如何处理呢?

public: static 我的类* getInstance() {
if( _uniqueInstance == 0 ) {
_uniqueInstance = new 我的类(); //这里报错
}
return _uniqueInstance;
}
我这里报错:object of abstract class type "我的类" is not allowed
...全文
217 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
云瑀 2011-04-30
  • 打赏
  • 举报
回复
template<typename T>
class CSingleton
{
public:
static T& Instance()
{
static T me;
return me;
}
};
class MyClass: public CSingleton<MyClass>
{
public:
MyClass(){};
~MyClass(){};
void Print() { printf("testing %d\n",val); }
int val;
};

int main(void)
{
MyClass::Instance().val=7;
MyClass::Instance().Print();
return 0;
}

试试用template
全速前行 2011-04-30
  • 打赏
  • 举报
回复
原来是父类里的虚函数子类没有实现造成的。
实现下就好了!
bluesage 2011-04-30
  • 打赏
  • 举报
回复
理论上子类跟父类应该是同质的,子类有这样的需求,父类是否应该也有这样的需求?
研究事物是需要应用的时候更科学。

3,405

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 设计模式
社区管理员
  • 设计模式
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧