c++ - 为什么我们使用 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++ - 无法正确遍历文件
- node.js - 如何将节点参数 max-http-header-size 传递给 Firebase 函数
- python - 'function' 对象在 Python 中不可下标
- google-sheets - 有没有办法从 Google 表格单元格中获取“标题文本”?
- java - resolveFully 不解析与回调相关的 PathItem 的嵌套引用或普通引用
- javascript - 任意数量页面的 ReactJS 上下文
- python - 如何解决在 Python 3.8 上运行的 PyCharm 上安装 XG-Boost 时遇到的这个问题?
- python - python准备的请求-删除不需要的标头
- android - android中嵌套图形片段中的控制工具栏后退按钮和汉堡图标
- sorting - 如果我在剑道网格字符串类型列中有数字字段,则无法正确排序