私有构造函数错误C ++

时间:2011-09-14 17:15:42

标签: c++ xcode3.2

我第一次尝试在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 ++中使构造函数成为私有...

4 个答案:

答案 0 :(得分:5)

说明“在此上下文中”的行应该引导您到代码中有人试图分配GameDirector对象而不是使用sharedDirector方法的点。

答案 1 :(得分:2)

错误“在此上下文中”的部分应该有一个行号,指向您不在类定义中的一段代码,但某处您不小心尝试直接创建GameDirector而不是通过sharedDirector方法。

答案 2 :(得分:1)

你是。

您必须尝试在某处实例化GameDirector类型的对象。我们只能猜到哪里。

答案 3 :(得分:0)

您正试图在其他地方创建GameDirector的实例。您发布的代码段编译时没有错误。