1 #include <iostream> 2 #include<string> 3 using namespace std; 4 5 class Point { 6 public: 7 Point(int a, int b) :x(a), y(b) {}; 8 //Point(Point& p) :x(p.x), y(p.y) {}; 9 int getX() { return x; } 10 int getY() { return y; } 11 void print() { 12 cout << "x: " << x << endl << "y: " << y << endl; 13 } 14 private: 15 int x, y; 16 }; 17 18 Point re_Ponit(int a,int b) { 19 Point res(a, b); //创建的是局部变量 20 return res; //传递对象实体 21 } 22 23 Point& re_PonitReference1(int a, int b) { 24 Point res(a, b); //创建的是局部变量 25 return res; //传递对象引用(类似指针) 26 } 27 28 Point& re_PonitReference2(int a, int b) { 29 Point* res = new Point(a, b); //动态内存分配 30 return *res; //传递对象引用 31 } 32 33 34 int main() 35 { 36 Point a1 = re_Ponit(1, 2); //复制构造 37 Point& a2 = re_PonitReference1(2, 3); //引用赋值(该函数传递的是一个局部变量的引用) 38 Point& a3 = re_PonitReference2(2, 3); //引用赋值(该函数传递的是一个堆内存变量的引用) 39 a1.print(); //1,2 40 a2.print(); //随机值 41 a3.print(); //2,3 42 }