Просто интересно, может ли кто-нибудь указать мне правильное направление. У меня есть оператор извлечения друзей, который работает, если я включаю пространство имен std; но терпит неудачу, если я не делаю. кто-нибудь может дать мне подсказку?
ostream& operator << (ostream &out, coins &value)
это также функция друга, так что у меня есть это в моем файле class.h (как друг)
в моем файле functions.h (как прототип) и в моем файле functions.cpp (логика).
я пытался сделать это
станд :: ostream& оператор ….
станд :: ostream& оператор std ::<< (так далее)
но я просто не вижу, где я иду не так. Мой компилятор постоянно говорит мне: «ostream не называет тип»
благодарю вас
Это ostream
что существует в std
пространство имен, не делай std::<<
(это даже не имеет смысла!). Старайтесь меньше подходить к программированию из ружья; то есть, не попробуйте случайные вещи, пока это не работает. Ошибка говорит вам ostream
(неквалифицированная) проблема, поэтому вы должны сначала решить эту проблему.
#include <iostream>
struct coins
{
friend std::ostream& operator<<(std::ostream& sink, const coins& value);
};
std::ostream& operator<<(std::ostream& sink, const coins& value)
{
sink << "doing coins output";
return sink;
}
int main()
{
coins c;
std::cout << c << std::endl;
}
Кстати, это оператор вставки, когда вы вставляете данные в поток. Добыча будет >>
,
Других решений пока нет …