Как решить проблему с перегрузкой оператора?
У меня имеется такая перегрузка оператора для класса точка:
Point operator * (double c) {
Point temp;
temp.x = this -> x * c;
temp.y = this -> y * c;
temp.z = this -> z * c;
return temp;
}
При такой перегрузке работает только такая запись:
Point p1(1,2,3);
double c = 2;
Point p2 = p1 * 2;
Однако не работает такая запись:
Point p1(1,2,3);
double c = 2;
Point p2 = 2 * p1;
Как я понял, то это не работает, так как мы не вызываем перегруженный оператор для класса Point
. Можно ли сделать так, чтобы перегрузка оператора работала в обе стороны (Point
на число и число на Point
)
Источник: Stack Overflow на русском