我有以下代码是练习的一部分(我问过here)。
class MyInt
{
public:
MyInt(int x) : MyValue(new int(x)){};
MyInt()
{
MyValue = 0;
}
private:
int* MyValue;
}
int main(int argc,char** argv)
{
MyInt y(1);
MyInt x(y);
.... //Mode code
}
代码编译并运行(如果我不忘记在此处放置相关部分)。我想了解这一行
MyInt x(y);
我没有输入MyInt的构造函数,只有一个没有参数,另一个没有输入int。 MyInt没有operator()的定义。
计算机在那条线上做什么?
答案 0 :(得分:0)
这是由C ++为您生成的copy constructor
执行的MyInt x(y)
。如果您没有定义复制构造函数,C ++会为您生成一个。检查here中的复制构造函数部分。