我第一次尝试在C ++中使用Singleton模式编写一个类,我只是通过使我的构造函数变为私有来获取错误,我使用xcode 3.2并使用gcc 4.2进行编译:
class GameDirector {
private:
//Singleton instance
static GameDirector* director;
//Constructor
GameDirector(); //THIS LINE GIVES ME THE ERROR
public:
//Singleton pattern
static GameDirector* sharedDirector();
};
它给了我2个错误:
error: 'GameDirector::GameDirector()' is private
error: within this context
我无法理解为什么它会给我一个错误,我以为你被允许在C ++中使构造函数成为私有...
答案 0 :(得分:5)
说明“在此上下文中”的行应该引导您到代码中有人试图分配GameDirector对象而不是使用sharedDirector
方法的点。
答案 1 :(得分:2)
错误“在此上下文中”的部分应该有一个行号,指向您不在类定义中的一段代码,但某处您不小心尝试直接创建GameDirector
而不是通过sharedDirector
方法。
答案 2 :(得分:1)
你是。
您必须尝试在某处实例化GameDirector
类型的对象。我们只能猜到哪里。
答案 3 :(得分:0)
您正试图在其他地方创建GameDirector的实例。您发布的代码段编译时没有错误。