Я обновляю cpp после длительного перерыва, пытаясь понять методы перегрузки операторов.
Я пытался перегрузить «оператор <<» для вывода членов объекта. но я не могу сделать это без использования функции друга. Я ищу метод без использования функции друга. </p>
вот мой класс def:
class Add{
private:
int x;
public:
friend ostream& operator<<(ostream& ostr, Add const& rhs); //Method 1
void operator<<(ostream& ostr); //Method 2
};
реализации функций
//Method 1
ostream& operator<<(ostream &ostr, Add const& rhs)
{
ostr<<rhs.x;
return ostr;
}
//Method 2
void Add::operator<<(ostream& ostr)
{
cout<<" using operator<< \n";
ostr<<x;
}
вызовы из основной функции
cout<<Obj_Add; //calls the Method 1
Obj_Add<<cout; //calls the Method 2
Теперь мой вопрос: я хотел бы выполнить вызовы типа Метод 1 без использования функции друга. Но не знаю, можно или нет в cpp. Я пробовал несколько реализаций, но все это дает мне ошибки компиляции. Пожалуйста, помогите мне понять, что я здесь упускаю.