如何使用函数C ++之外的构造函数声明一个类

时间:2015-06-08 17:48:43

标签: c++ class

我有一个简单的问题,我无法找到答案。

如果我有一个带有构造函数的类,例如,

static Test test1;

int main()
{
    return 0;
}

我想在main之外声明它,作为静态全局

例如。

no matching function for call to 'Test::Test()'

我会收到错误: static Test test1(50);

如果我尝试使用 fruit = 13 我会得到错误:未定义的引用

这样做的正确方法是什么?我需要有2个构造函数,一个是空的,一个是变量吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

您很可能必须为类构造函数和析构函数(甚至是空实现)提供实现,例如:

class Test
{
public:
  Test()  // constructor with no parameters, i.e. default ctor
  {
      // Do something
  }

  Test(int var)
  // or maybe better:
  //
  //   explicit Test(int var)
  {
      // Do something for initialization ...
  }

  // BTW: You may want to make the constructor with one int parameter
  // explicit, to avoid automatic implicit conversions from ints.

  ~Test()
  {
      // Do something for cleanup ...
  }
};