друг перегружен оператор без пространства имен std

Просто интересно, может ли кто-нибудь указать мне правильное направление. У меня есть оператор извлечения друзей, который работает, если я включаю пространство имен std; но терпит неудачу, если я не делаю. кто-нибудь может дать мне подсказку?

ostream& operator << (ostream &out, coins &value)

это также функция друга, так что у меня есть это в моем файле class.h (как друг)
в моем файле functions.h (как прототип) и в моем файле functions.cpp (логика).

я пытался сделать это

станд :: ostream& оператор ….
станд :: ostream& оператор std ::<< (так далее)

но я просто не вижу, где я иду не так. Мой компилятор постоянно говорит мне: «ostream не называет тип»

благодарю вас

0

Решение

Это 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;
}

Кстати, это оператор вставки, когда вы вставляете данные в поток. Добыча будет >>,

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector