Point::Point(Point& p) {
x = p.x;
y = p.y;
cout << "Calling the copy constructor" << endl;
}
复制构造函数Point::Point(Point& p),加&有什么意义?
void fun1(Point p)//加一个取&符号,有什么不同。
{
cout << p.getX() << endl;
cout << p.getY() << endl;
}
void fun1(Point p)运行得到的结果是
&传值表示引用 用地址传值 ,而不用&则是形参会拷贝一个新的变量 这个时候调用了复制构造函数。也就是说函数传值的时候会产生一个中间变量