Предположим, что у меня есть этот класс:Построить префикс оператора
class Int{
private:
int x;
public:
Int(int i) : x(i) {}
};
Могу ли я построить prefix +
оператору написать выражение, x = + a b
?
Я попытался перегрузить operator+
внутри класса, но компилятор жалуется, что operator+
должен быть унарным или двоичным, а не тройным.
Есть ли способ сделать такую вещь?
Что вы хотите '=' + означает? Как написано, это алгебраическая ерунда. –
Нет, не стоит начинать писать Lisp на C++ (хотя мы и захотим). (По совпадению, 'x = + a' будет работать, но не' x = + a b'.) –
@JohnDibling: Он описывает [Префиксная нотация] (http://en.wikipedia.org/wiki/Polish_notation). –