Не удается перегрузить оператор<< как функцию-член

Я пытаюсь перегрузить operatorкак функцию-член. Это работает, если просто сделать это:

friend ostream& operatorв моем заголовочном файле и в моем файле MyClass.cc:

ostream& operator<<(ostream& os, const MyClass& myClass)
{
   return myClass.print(os);
}

Однако, если я попытаюсь взять friendoff и сделать его функцией-членом, затем он жалуется, что operatorможет принимать только один аргумент.Почему?

ostream& MyClass::operator<<(ostream& os, const MyClass& myClass)
{
   return myClass.print(os);
}

Я прочитал в этот вопрос, что это не может быть функцией-членом, но не уверен, почему?

19
задан Community 23 May 2017 в 11:47
поделиться