C++拷贝构造函数的一点问题
#include<iostream>
using namespace std;
class Complex{
double real,image;
public:
Complex(double r=0.0,double i=0.0)//构造函数
{
real=r;image=i;cout<<"a"<<real<<endl;}
Complex(Complex &c)//拷贝构造函数
{
real=c.real;image=c.image;cout<<"B"<<real<<endl;}
Complex add(Complex c)
{
real+=c.real; image+=c.image;
cout<<"add"<<real<<endl;
return *this;}
};
void main(){
Complex a,b(1.2),c(2.3,5.5);
Complex a1(c),a2=b;
a=b.add(c).add(a2);
}
这是源代码有用的一部分,主函数代码的最后一行的输出结果不是很理解,想请教一下,以该代码为例,当函数返回this指针的话,理论上可以无限a.f().f().f()......那么运行时又是怎么个调用流程?
其中空间分配的规则是什么?