Я читаю TCPPPL Бьярна Страуструпа, и я наткнулся на следующий фрагмент кода (показанный ниже). У меня два вопроса:
Где тело оператора функции +? Я имею в виду, что в классе X есть только объявление функции.
Что означает строка X (int)? Это конструктор с int в качестве параметра или что-то еще?
class X {
public:
void operator+(int);
X(int);
};
void operator+(X,X);
void operator+(X,double);
void f(X a)
{
a+1; // a.operator+(1)
1+a; // ::operator+(X(1),a)
a+1.0; // ::operator+(a,1.0)
}