关于析构函数
来源:8-4 运算符重载
tobeabee
2022-02-24
老师,在本节视频的12:19秒我发现如果把程序运行到底的话会显示5句Complex::~Complex()
我的理解是其中四句分别来自tmp,a,b,c
那么剩下的一句是来自哪里呢,是不是我们在函数Complex operator+(Complex& x)返回的时候返回了一个tmp的副本,第五句Complex::~Complex()就来自于这个副本?
另外我发现如果把Complex operator+(Complex& x)的返回类型(像重载=运算符那样)改成引用,最后输出结果就只剩四句Complex::~Complex(),不过这种写法有什么问题吗
写回答
1回答
-
请之后提问将你的代码直接贴上最好。这里Complex operator+(Complex& x)传参时需要传引用,另外在实现时不要定义一个中间变量变量tmp,否则会常产生多余的complex对象。
022022-02-25
相似问题