首页 > 解决方案 > 为什么我们使用 const 和 reference 作为参数来复制构造函数?

问题描述

考虑以下示例:

#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);

标签: c++classconstructor

解决方案



推荐阅读