一个有关C++基础语法的问题
#include<iostream>
using namespace std;
class Point
{
public:
Point(int xx=0,int yy=0) {X=xx;Y=yy;}
Point(Point &p);
int GetX() {return X;}
int GetY() {return Y;}
private:
int X,Y;
};
Point::Point(Point &p)
{
X=p.X;
Y=p.Y;
cout<<"拷贝构造函数调用"<<endl;
}
void fun1(Point p)
{
cout<<p.GetX()<<endl;
}
Point fun2()
{
Point A(1,2);
return A;
}
int main()
{
Point A(4,5);
Point B(A);//拷贝构造函数调用
cout<<B.GetX()<<endl;//4
cout<<B.GetX<<endl;//这一句和上面那句有什么区别?输出结果1,B.GetX是函数指针?
fun1(B);//这里为什么也会调用拷贝构造函数?
B=fun2();
cout<<B.GetX()<<endl;//1
getchar();
return 0;
}