在C ++中实现单例时,GetInstance()返回指向单例对象或引用的指针是否更好?这真的很重要吗?
答案 0 :(得分:34)
我更喜欢参考。每当我想记录时,我都会使用引用而不是指针:
答案 1 :(得分:9)
我认为返回引用会更安全,但不要忘记单例对象的“复制保护”。
答案 2 :(得分:1)
除了返回之外,引用无关紧要地保证单例存在。 (如果没有,你应该抛出异常。)
由于单身人士在设计模式服装中基本上是全球性的,所以这也忽略了单身人士是邪恶的建议,因为全球人是邪恶的。
答案 3 :(得分:0)
getInstance()方法返回一个引用,因为当控制流首次传递其定义时,函数静态对象被初始化。另外,使用引用更好:现在用户无法删除单例的指针。另外,这个实现很简单!
class CKeyboard
{
public:
static CKeyboard& GetInstance()
{
static CKeyboard keyboard;
return keyboard;
}
private:
CKeyboard() {}
CKeyboard(const CKeyboard&);
CKeyboard& operator=(const CKeyboard&);
};
http://www.devartplus.com/3-simple-ways-to-create-singleton-in-c/