我有一个简单的问题,我无法找到答案。
如果我有一个带有构造函数的类,例如,
static Test test1;
int main()
{
return 0;
}
我想在main之外声明它,作为静态全局
例如。
no matching function for call to 'Test::Test()'
我会收到错误:
static Test test1(50);
如果我尝试使用
fruit = 13
我会得到错误:未定义的引用
这样做的正确方法是什么?我需要有2个构造函数,一个是空的,一个是变量吗?
谢谢,
答案 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 ... } };