【发布时间】:2012-09-06 11:49:48
【问题描述】:
我有一个 MyPoly 类,我在其中实现了自己的等号运算符 ( = )。 当我尝试此代码时,一切正常,并且正在调用我实现的 =。
MyPoly mp = MyPoly(arr , 4);
MyPoly copy;
copy = mp;
但是当我写这个时:
MyPoly mp = MyPoly(arr , 4);
MyPoly copy = mp;
它不使用我实现的 = ,然后当调用析构函数时我得到一个运行时错误。
谁能解释为什么这些代码不同?
【问题讨论】:
-
我认为在第二种情况下,使用复制构造函数而不是赋值运算符。
-
我要走了,所以我没有时间给出完整的答案,但这是由于 C++ 使用符号
=来表示两个 assignment(第一种情况)和初始化(第二种情况)。