Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.58
kravam
быдлокодер
1703 / 890 / 45
Регистрация: 04.06.2008
Сообщений: 5,489
#1

Как создать виртуальный поток и переопределить оператор <<? - C++

02.01.2011, 02:48. Просмотров 2484. Ответов 21
Метки нет (Все метки)

Виртуальный то есть имеется ввиду не файловый и не строковый и не консольный.

Впрочем, создание сего не противоречит синтаксису. Вот, например, тут написано про поток
ostream и про оператор <<

Так а теперь мой код:
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
 
int main (){
 int k= 87;;
 ostream o();
 o<< k;
 return 0;
}
Коспилятор пишет: неизвестные типы операндов... И так далее.
Как неизвестные? Всё известно.
Вот, идём по сссылке и видим один из вариантов (мой)
C++
1
ostream& operator<< (int& val );
Но почему-то не получается. Помогите пожалуйста, друзья! Спасибо заранее.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.01.2011, 02:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как создать виртуальный поток и переопределить оператор <<? (C++):

Переопределить поток вывода cout - C++
Есть некоторый кусок кода выводящий на консоль информацию с помощью cout, все бы хорошо, но при некоторых условиях, бывает нужно выводить...

Как по нажатию на кнопку создать новый поток - C++ Builder
Мне нужно организовать выход из безконечного цикла. Пока не нажата кнопка №2 выполняется цикл, который запускается кнопкой №1. void...

Как в С++ Builder из 2х потоков рисовать на форме квадратики(это первый поток рисует) и кружочки (2ой поток)) - C++ Builder
Помогите пожалуйсмта))))) Как в С++ Builder из 2х потоков рисовать на форме квадратики(это первый поток рисует) и кружочки (2ой поток))

Как переопределить метод родителя класса? - C++ Builder
Есть класс TDot, который есть классом-наследником для класса TTriangle В классе TDot есть метод setColor(), который меняет цвет и метод...

Переопределить оператор присваивания - Visual C++
Немогу переопределить оператор присваивания для своего типа - линейного списка. Проблема в том, что я хочу переопределить не что-то типа ...

Как в VS 2008 создать поток? - Visual C++
Здравствуйте! IDE - Visual Studio 2008 C++ OS - Windows XP Я в С++ новичёк, вот разбираюсь с потоками. В общем &quot;концепция&quot;...

21
kravam
быдлокодер
1703 / 890 / 45
Регистрация: 04.06.2008
Сообщений: 5,489
02.01.2011, 20:58  [ТС] #16
Во-во, использовать строковый поток вместо файлового куда лучше. Не опробовал пока, но идея ясна. А вот ещё такой вопрос: вообще как программисты поступают, вот допустим, возникла необходимость поправить чужой класс VERYLONG. То есть понятно дело, я чё хочу с исходником то и делаю, но я просто не знаю всех подводных камней кроме того, естествено, что я там напортачу. Может, стандарты какие надо соблюдать или что ещё и вообще насколько технически грамотно решение- править чужой качественный класс, пусть даже и неполный?
0
Nick Alte
Эксперт С++
1642 / 1014 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
02.01.2011, 21:04 #17
Программист постарается не исправлять класс, а наиболее эффективно воспользоваться уже имеющимися в нём возможностями. Для более конкретного ответа неплохо бы увидеть интерфейс этого самого Verylong. Возможно, там имеются более удобные средства порождения, чем за счёт потока.
1
XomyaC++
7 / 7 / 1
Регистрация: 25.12.2010
Сообщений: 41
02.01.2011, 21:07 #18
Цитата Сообщение от kravam Посмотреть сообщение
А вот ещё такой вопрос: вообще как программисты поступают, вот допустим, возникла необходимость поправить чужой класс VERYLONG.
Пишут friend для этого класса или глобальную функцию
1
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
02.01.2011, 21:10 #19
Или же делают производный класс в котором переопределяют все, что нужно.
1
kravam
быдлокодер
1703 / 890 / 45
Регистрация: 04.06.2008
Сообщений: 5,489
02.01.2011, 21:10  [ТС] #20
Скачал откуда-то, может, кто заинтересуется, класс "большие числа".
Косметические дополнения типа: приписать using namespace std;
0
Вложения
Тип файла: zip verylong.zip (3.5 Кб, 11 просмотров)
XomyaC++
7 / 7 / 1
Регистрация: 25.12.2010
Сообщений: 41
02.01.2011, 21:14 #21
kravam, я так понимаю задача не "переписать список в Verylong" а попользоваться operator<<(), так? Судя по всему здесь совсем не нужно так заморачиваться по поводу перевода данных в другой класс. Все решается довольно просто с помощью дополнительных функций-переводчиков, который могут вообще не относится ни к одному классу. И если так хочется использовать <<, то можно объявить verylong &operator<<(verylong &vv, list<char> &ll);
0
Nick Alte
Эксперт С++
1642 / 1014 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
02.01.2011, 21:23 #22
Насколько я понимаю, стоит задача породить Verylong из list<char>. Можно создать свой класс, унаследовав его от list<char> и определить в нём преобразование в const char*. Либо как функцию по типу string::c_str(), либо как оператор неявного преобразования. Проще всего завести в том же классе переменную типа string, в которую при вызове преобразования и собирать все символы, а затем пользоваться той же c_str(). Такой класс за счёт унаследованного интерфейса можно использовать точно так же, как list<char> и порождать из него Verylong конструктором из const char*. Это не очень эффективное в плане производительности и использования памяти решение (что едва ли важно в этом случае), но зато достаточно простое и очевидное.
0
02.01.2011, 21:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.01.2011, 21:23
Привет! Вот еще темы с ответами:

Как создать дополнительный поток? - Visual C++
сабж. пробовал создавать так: void Thread( void* pParams ) { int i, num = 0; while ( 1 ) { Sleep(1000); ...

Как создать поток (Thread) в с++ mfc? - Visual C++
Здравствуйте!) Не могу ни как понять, как создать поток в с++ mfc? В c# и с++ делал потоки, но в mfc как-то по другому они чтоль...

Создать класс Str (символьная строка). Переопределить оператор присвоения. - C++
Помогите решить с обяснениями. Создать класс Str (символьная строка). Переопределить оператор присвоения.

Как переопределить оператор ++ типа char? - C++
Добрий день Хочу спросить возможно ли как-то переопредилить оператор ++ типа char?


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.