【发布时间】:2020-11-05 14:04:45
【问题描述】:
考虑以下示例:
#include<iostream>
using namespace std;
class Point
{
private:
int x, y;
public:
Point(int x1, int y1) { x = x1; y = y1; }
// Copy constructor
Point(const Point& p2) { x = p2.x; y = p2.y; }
int getX() { return x; }
int getY() { return y; }
};
int main()
{
Point p1(10, 15);
Point p2 = p1;
cout << "p1.x = " << p1.getX() << ", p1.y = " << p1.getY();
cout << "\np2.x = " << p2.getX() << ", p2.y = " << p2.getY();
return 0;
}
我们注意到Point(const Point& p2); 是一个复制构造函数。为什么我们使用const 关键字,为什么我们使用引用?我们为什么不使用Point(Point p2);?
【问题讨论】:
-
一个原因是临时对象不能绑定到非常量引用。
-
注意:我已经恢复了 OP:s 编辑,它添加了一个完全独立的问题。 OP:请仅针对每个线程提出问题。
标签: c++ class constructor