в моем классе Definiton я есть следующие другу функции:оператор << и оператор >> перегружен функции
friend ostream& operator << (ostream& out, const Person& p1);
friend istream& operator >> (ostream& out Person& p1);
В моей implentation файле:
ostream& operator << (ostream& out, const Person& p1)
{
out<< p1.age; //this is a private variable
}
istream& operator << (istream& in, Person& p1)
{
in >> p1.age; //this is a private variable
}
Но когда я компилирую это, я получаю ошибка, которая говорит, что «ostream» не называет тип друга ostream & operator (ostream & out, const Person & p1) .. то же самое для istream. Поскольку это функции друзей, они могут получить доступ к частным переменным i.e age, так что проблема?
Вы пробовали квалифицируя 'ostream' с' std' имен, например, 'Станд :: ostream'? – dreamlax
Вам нужно включить '' и' '. В том числе '' также будет работать. –
juanchopanza
ваши функции также должны возвращать поток. то есть «вернуть»; – Chemistpp