免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 真菜
打印 上一主题 下一主题

因为没有用Singleton模式,被人批不懂OOP! [复制链接]

论坛徽章:
0
111 [报告]
发表于 2009-01-13 07:43 |只看该作者
也许lz比senior牛B,但是人家是senior,你不是,人家可以指正你的代码,而你只能在背后骂人家,这就使区别。

论坛徽章:
0
112 [报告]
发表于 2009-01-13 08:18 |只看该作者
不懂程序开发了,路过。

我只知道类的概念

论坛徽章:
0
113 [报告]
发表于 2009-01-13 10:47 |只看该作者
楼主,放心大胆的用全局变量吧,多省事,多方便。
爽要留给自己,让别人难受去吧

论坛徽章:
0
114 [报告]
发表于 2009-01-13 11:47 |只看该作者
世界上比操作系统的复杂的项目多的是,只是你看不到而已

论坛徽章:
0
115 [报告]
发表于 2009-03-09 11:15 |只看该作者
刚好在看singleton这个pattern
对于lz的问题,我一般是这样做的,不知道在多线程下边有没有问题:
#include <iostream>
using std::cout;
using std::endl;

class Singleton
{
public:
  bool loadConfig()
  {
    cout << "Load Config" << endl;
    return true;
  }
  
  static Singleton &instance()
  {
    static Singleton inst;
    Singleton *pInst = &inst;
    return *pInst;
  }
protected:
  Singleton()
  {
    cout << "In Singleton" << endl;
  }
  ~Singleton()
  {
    cout << "In ~Singleton" << endl;
  }

private:
  //not available
  Singleton(const Singleton &inst);
  Singleton &operator=(const Singleton &inst);
};

int main()
{
  Singleton::instance().loadConfig();
}

论坛徽章:
0
116 [报告]
发表于 2009-03-09 11:23 |只看该作者

回复 #115 fanhongxuan 的帖子

书上提到了在多线程的情况下,可以使用Double-Checked Locking的方法来实现线程安全,同时可以保证效率,好像也是容易的.
我就是不太明白,好像我在函数里边用个静态变量的方法应该也是可以保证的吧.C++自己去初始化这个变量应该自己可以保证是线程安全的吧?
就是这个问题不是很确定,哪个兄弟指点一下.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP