У меня есть класс, как это:Последовательность в размещении функций оператора
class A {
...private functions, variables, etc...
public:
...some public functions and variables...
A operator * (double);
A operator/(double);
A operator * (A);
...and lots of other operators
}
Однако, я хочу быть в состоянии делать такие вещи, как 2 * A
вместо того, чтобы только быть позволено делать A * 2
, и поэтому я должен был бы функции как эти снаружи класса:
A operator * (double, A);
A operator/(double, A);
...etc...
нужно ли все эти операторы вне класса согласованности, или я должен держать половину внутри и снаружи половину?
Можно ли «удвоить» рассматривать как «А»? Есть ли неявное преобразование из 'double' в' A'? –
@Charles Bailey - нет, он не может, и нет, нет – wrongusername
В этом случае вы уверены, что хотите совместить 'A' и' A' с точно таким же синтаксисом, что вы комбинируете 'A' и' double '? –