为什么调用这个方法而不是另一个
Why is this method called instead of the other?
我有这个特殊的代码示例:
struct ComplexNumber {
float _Re, _Im;
public:
float Re() const { return _Re; }
float& Re() { return _Re; }
float Im() const { return _Im; }
float& Im() { return _Im; }
};
我想知道为什么,当我执行
ComplexNumber Num1;
cout << Num1.Re() << endl;
方法float& Re() { return _Re; }
正在被调用,而不是
float Re() const { return _Re; }
似乎已经准备好通过const保护数据来执行cout。
正在调用最佳匹配函数,因此如果您同时拥有const和非const版本,则将在非const对象上调用非const版本。
如果你有一个const对象(或指针或引用)
const ComplexNumber Num1;
cout << Num1.Re() << endl;
则调用float Re() const { return _Re; }
相关文章:
- 不能将方法返回的值用于另一个方法
- 重写另一个方法 [C++] 使用的超类回调函数
- 从同一类中的另一个方法调用方法时出错
- 如何将一个方法中的值返回到同一类的另一个方法
- 是否可以在另一个方法中使用模板类中定义的虚拟方法
- 调用方法,该方法修改字段,而使用该字段的另一个方法正在执行
- 将一个方法作为参数传递给另一个方法,该方法本身将传递的方法传递给 std 线程
- 从 ndk 中的 jni 方法调用另一个C++方法
- 在 c++ 中返回一个结构数组,并将此数组传递给另一个方法
- 如何使一个方法在新线程中调用同一类中的另一个方法
- 我不知道如何将变量从一个类中的方法传递和检索到另一个类的另一个方法
- 阻止在另一个方法之前调用一个方法
- C++:重写由另一个方法调用的受保护方法
- 调用静态单一实例以调用另一个方法的方法
- C++传递另一个方法作为参数
- 从另一个方法调用成员方法指针
- 指向 int 数组的指针,从另一个方法传递和使用它
- C++:在另一个方法中使用预先声明的运算符[]
- 调用一个方法会将输出返回到同一类c++的另一个方法中
- 从另一个方法调用非静态成员方法