0

我有以下代码是练习的一部分(我在这里问过)。

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() 的定义。

那条线上的计算机在做什么?

4

1 回答 1

0

那是C++ 为你生成的copy constructor执行。MyInt x(y)如果您没有定义复制构造函数,C++ 会为您生成一个。检查此处的复制构造函数部分。

于 2014-07-21T22:45:27.497 回答