复制构造函数问题

时间:2016-12-22 14:12:23

标签: c++ constructor

该计划应以这种特定方式解决1级方程。我必须为构造函数和析构函数使用输出消息,以便更好地理解代码。

 if(carry == 1)
    {
        carry += a[i-1] + b[i-1];
        output = carry;
    }

现在,我很难理解为什么在第一个cpy构造函数(对于ec3)之后调用另一个cpy构造函数然后是析构函数。它在做什么?

1 个答案:

答案 0 :(得分:3)

您的函数按值Ec对象

float half1(Ec ec1) { return (ec1.a / 2);}
            ^

这些将使函数本地副本在每个函数结束时被销毁。

如果您想避免制作这些副本,请通过const引用传递参数

float half1(Ec const& ec1) { return (ec1.a / 2);}
               ^