Форум программистов, компьютерный форум CyberForum.ru

Перегруженный operator<< - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывести на экран суммарный результат, указав число студентов сдавших и проваливших экзамен http://www.cyberforum.ru/cpp-beginners/thread1240427.html
День добрый помогите решить задачу: есть 10 студентов ( 10 раз на екран должно высвечиватся"Введите результат" результат- если пользователь пишет 1,значит студент сдал,если пишет 2 - провалил нужно -подсчитать число результатов каждого типа) -вывести на экран суммарный результат,указав число студентво здавших и проваливших -если хотя бы 8 студентов сдало тест написать "Отлично"
C++ Как изменить выводное окно? Я меняю выводное окно (или как там называется штука которая появляется при запуске программы) через "Свойства" Но когда я отправляю программу на другой компьютер, все изменения пропадают! Как мне изменить выводное окно? http://www.cyberforum.ru/cpp-beginners/thread1240378.html
C++ На основании строки генерируем все возможные слова
имею такой код #include <iostream> #include <math.h> #include <sstream> using namespace std; void ALLWords(string A, string &w, int N) { if ( N == w.size() ) { cout<<w<<endl;
C++ Какие соглашения действуют в C++?
Например, в PHP следующие соглашения наименования: Имена классов с большой буквы (SomeClass) Имена переменных с маленькой буквы (some_var) Имена функций с маленькой буквы (someFunction) А какие соглашения действуют в C++?
C++ Периодическая генерация событий сообщений окну - как реализовать? http://www.cyberforum.ru/cpp-beginners/thread1240354.html
Почитал немного про создание оконных приложений - очень интересно. Даже пятнашки, думаю, могу навскидку за несколько минут написать. А тетрис - не могу :) Потому что в пятнашках нужна только реакция на действия пользователя и все. А в тетрисе помимо этого должен параллельно крутиться бесконечный процесс, который раз в нцать миллисекунд что-то там делает, шлет сообщения окнам и они отрабатывают...
C++ Не строится решение - Синтаксическая ошибка: перед "unsigned int" требуется ";" Уважаемые форумчане помогите построить решение. Есть в решении строящаяся библиотека (строит .dll) и в этом же решении программа похоже использующая эту библиотеку. Отдельно библиотека строится без ошибок. А когда запускаю все решение, показывает ошибки (на картинке 1, на второй картинке объявление макросов). Программа связана с компьютерным зрением, а именно использование блобов. ... подробнее

Показать сообщение отдельно
Gwini
10 / 10 / 3
Регистрация: 08.03.2014
Сообщений: 70
09.08.2014, 20:28     Перегруженный operator<<
Есть допустим такая дружественная функция:

объявление
C++
1
template<typename Type> friend std::ostream& operator<<(std::ostream&, Stack<Type>&);
определение
C++
1
2
3
4
5
6
7
8
9
10
11
12
template<typename Type>
std::ostream& operator<<(std::ostream& stream, Stack<Type>& obj_show)           
{
    Stack<Type>::node* ptr = obj_show.top;
    while (ptr)
    {
        stream << ptr->cell;
        ptr = ptr->priv;
    }
 
    return stream;
}
не вдаваясь в подробности — шаблон класса:
C++
1
2
3
4
5
template<typename Type>
class Stack
{
private:
.....
У меня вопрос: как работает даная дружественная функция? Она, как я понимаю, сама по себе независимая шаблонная функция и выходит, что принмая аргумент, допустим Stack<int> она определяется как Stack<Stack<int> > или это не так? Все в принципе работает, но я не понимаю механизма. Если в шаблоне заменить Stack<Type> на просто Type появляется ошибка: неоднозначная операция " << ". Почему в первом случае нет этой неоднозначности? Спаисбо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru