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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Lambont
9 / 9 / 5
Регистрация: 23.11.2013
Сообщений: 33
#1

Шаблонный перегруженный оператор "<<" и endl - C++

17.03.2014, 23:44. Просмотров 300. Ответов 1
Метки нет (Все метки)

Здравствуйте! Изучаю C++, возникла, у меня, такая проблема...
Вот, к примеру, "кусок" класса:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class VisualScreen {
 
    std::stringstream _strstream;
 
    /* . . . */
 
public:
 
    template <typename T>
    friend VisualScreen& operator << (VisualScreen &l, T r){
        l._strstream << r;
        return l;
    }
 
    /* . . . */
 
};
как сделать так, чтоб всё хорошо работало вместе с endl, к примеру:
C++
1
2
VisualScreen VScr;
VScr << "WinXY" << 43 << 'y' << std::endl;
Ведь, естественно, сам stringstream переваривает endl, но при таком раскладе endl компилятору не нравится...
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2014, 23:44     Шаблонный перегруженный оператор "<<" и endl
Посмотрите здесь:

Разработать шаблонный класс "дек" на основе односвязного списка C++
C++ std::endl; и std::cout"/n"; - одно и то же?
Шаблонный класс "множества". Операции над множествами C++
Создать шаблонный класс "Элемент списка" C++
C++ Паттерн "Шаблонный метод"
Что применить "\n" или "endl"? C++
C++ Перегруженный "оператор +" неправильно возвращает значения
Шаблонный класс "Массив" C++
C++ Чем отличается "\n" от std::endl?
Определить перегруженный бинарный и унарный оператор* для класса "Комплексное число" C++
Реализовать шаблонный класс "Строка" C++
Есть ли в std, или где-нибудь ещё, константа для пустой строки (""), как endl (\n) для символа переноса? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
18.03.2014, 12:29     Шаблонный перегруженный оператор "<<" и endl #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <sstream>
 
class VisualScreen {
 
    std::stringstream _strstream;
 
    /* . . . */
 
    public:
 
    template <typename T>
    friend VisualScreen& operator << (VisualScreen &l, T r){
            l._strstream << r;
            return l;
        }
 
    friend VisualScreen& operator << (VisualScreen &l, std::ostream & (*manip)(std::ostream &)){
            manip(l._strstream);
            return l;
        }
 
    /* . . . */
 
};
 
int main()
{
    VisualScreen vs;
    vs << 10 << 'y' << std::endl;
}
Yandex
Объявления
18.03.2014, 12:29     Шаблонный перегруженный оператор "<<" и endl
Ответ Создать тему
Опции темы

Текущее время: 12:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru