我有一个简单的问题。
我能这样做吗?
class test {
int x;
public:
test();
test(int x);
};
主要是我:
test t;
t(2);
Supose我有一个类测试,首先我使用默认构造函数声明对象t,但后来我想显式修改调用显式构造函数的值。 因为我试过这个并且我没有得到函数(test)(int)的匹配调用,这没有任何意义。
答案 0 :(得分:0)
你的班级声明没问题,但是
t(2);
不是构造函数调用,它会尝试调用void operator()(int)
的{{1}}重载,但不提供。{1}}。
你可能只是想写
test
或使用编译器生成的赋值运算符
test t(2);
而不是
test t;
t = 2; // or t = test(2);