Line 包含以下修饰符,该修饰符将值赋给类数据成员。
Line
void Start(const Point &start);
start 函数参数中的变量是一个引用,我将其实现如下:
start
void Line::Start(const Point &start) { m_start = start; }
在主函数中,我有以下内容。
Line line; Point start(1, 1); line.Start(start);
会不会 m_start 开始 Point 对象,因为它是通过引用传递的?
m_start
开始
Point
m_start data成员现在是否直接引用起始点 对象,因为它是通过引用传递的?
不,C++引用的一个属性(以及它们的行为与指针不同的方式之一)是不可能的。 重新拔插 m_start 成员变量的类型为 Point 而不是打字 Point &
Point &
相反, start 开始 m_开始 成员变量。
m_开始
Start() 方法的行为与 void Line::Start(Point start) 方法将,但以下情况除外:
Start()
void Line::Start(Point start)
在你的 const Point & 开始() ,不生成点对象的单独/方法本地副本
const Point &
开始()
施工点; 开始() ,正在尝试修改 方法内部的错误是编译时错误(而在pass-by-value版本中,内部的代码 开始() 开始() 函数,因为它们只修改局部变量/参数)
施工点;