Я изучаю перегрузку операторов в c ++, и я хочу знать вывод следующего кода
#include<iostream>
using namespace std;
class xyz
{
public:
int i;
friend ostream & operator<<( ostream & Out , int);
};
ostream & operator<<(ostream & out , int i)
{
cout<<10+i<<endl;
}
int main()
{
xyz A;
A.i=10;
cout<<10;
}
И я получил две ошибки
ошибка: неоднозначная перегрузкадля 'operator <<' (типы операндов: 'std :: ostream {aka std :: basic_ostream}' и 'int') cout << 10 + i; </p>
ошибка: неоднозначнаяперегрузка для 'operator <<' (типы операндов 'std :: ostream {aka std :: basic_ostream}' и 'int') cout << 10; </p>
может кто-нибудь объяснить, чтоэта проблема ?
Я хочу знать, что произойдет, если я перегружу оператор «<<» для печати int только одним параметром int (очевидно), и я просто хочу напечатать число отдельно, например «cout << 10» intвышеупомянутый код.Так как компилятор решит, какую функцию следует вызывать, когда я пытаюсь напечатать только любое целое число. </p>