运算符重载 - 边缘问题吗?

时间:2016-01-02 22:30:33

标签: c++ class operator-overloading

假设我在Car课程中实施了以下运算符:

Car operator*(int n, const Car& car);

我有一个类型car的{​​{1}}对象:

Car会产生与Car car3 = car * 3;相同的结果吗?

或者我还必须实施

Car car3 = 3 * car;

编辑:标记的问题对我没有帮助。在标记的问题中,答案是使用他在课堂上实施的操作员。我问过运营商我已经在课外实施了。

1 个答案:

答案 0 :(得分:-1)

是的,你有。这是因为c ++不会像在数学中习惯的那样对+运算符强制执行任何simmetric规则。 一种方法是内联定义第二个定义并调用第一个定义。