【发布时间】:2018-08-12 01:40:17
【问题描述】:
假设我们有一个名为 Line 的类,其中包含以下修饰符,该修饰符将值分配给类数据成员。
void Start(const Point &start);
line 类包含两个名为 start 和 end 的数据成员,它们都是 Point 对象。由于函数参数中的start变量是引用,我实现如下:
void Line::Start(const Point &start) {
m_start = start;
}
在主要功能中,我有以下内容。
Line line;
Point start(1, 1);
line.Start(start);
m_start 数据成员现在是否会直接引用 main 函数中的 start Point 对象,因为它是通过引用传递的?
【问题讨论】:
-
m_start的声明在哪里?如果m_start是Point则否,则复制该值。如果它是一个 const 引用,那么你有一个编译错误。您需要在初始化列表中初始化 const 成员和引用。 -
您是否尝试过自己进行测试,例如更改之后的点并使用另一个类方法从传递的
Point引用中输出数据以查看它是否与Point相同?
标签: c++ class const-reference