1.同一类中的对象1复制给对象2:
同样是Point p1; Point p2;
例如:
int main(){
Point p1(1,2);
Point p2=p1; //这两种都会调用复制构造函数
Point p3(p1);
return 0;
}
2.以对象为函数的形参:
例如:
void fun(Point p){ //p 作为了形参
cout<<p.height<<endl;
}
3.函数返回是类的对象:
void fun2(){
Point p1(1,3);
return p1;
}
//或者还有返回*this的形式
void fun3(){
Point p2(5,8);
x+=4;
y+=6;
return *this;
}
注意:如果意外使用return *this;
导致调用的复制构造函数里面会输出多余的语句(这些语句不可删除)
那么我们应该 让此函数的返回类型改为 void
例题如下(让我记