От:
Bell
Дата: 03.02.04 15:58
Оценка:
+1
Здравствуйте, ArtDenis, Вы писали:
AD>AD>CSomeClass::SetStream( ostream& outStream ) : m_Outstream(outStream)
AD>{
AD>}
AD>
AD>А что на это говорит компилятор?
Ух ты
А с каких пор у функций появился список инициализации?
Любите книгу — источник знаний (с) М.Горький
От:
Vamp
Дата: 03.02.04 15:59
Оценка:
AD>А что на это говорит компилятор?
Он молчит. Делает большие глаза и удивленно цокает языком...
Да здравствует мыло душистое и веревка пушистая.
От:
Glоbus
Дата: 03.02.04 15:29
Оценка:
Товарищи
Не подскажете как решить следующий вопросец
есть класс
#include <iostream>
using std::ostream;
class CSomeClass
{
/*********
...........
**********/
private :
ostream& m_OutStream;
};
[/code]
и метод
[ccode]
CSomeClass::SetStream( ostream& outStream )
{
this ->m_Outstream = outStream
}
Компилятор говорит
error C2440: 'type cast' : cannot convert from 'std::ostream' to 'std::basic_ostream<_Elem,_Traits>'
не подскажите, как справиться с этим.
Заранее признателен
Удачи тебе, браток!
Здравствуйте, Glоbus, Вы писали:
G>Товарищи
G>Не подскажете как решить следующий вопросец
G>есть класс
G>
G>#include <iostream>
G>using std::ostream;
G>class CSomeClass
G>{
G>/*********
G>...........
G>**********/
G>private :
G> ostream* m_OutStream;
G>};
G>[/code]
G>и метод
G>[ccode]
G>CSomeClass::SetStream( ostream& outStream )
G>{
this ->>m_Outstream = &outStream;
G>}
G>
G>Компилятор говорит
G>G>error C2440: 'type cast' : cannot convert from 'std::ostream' to 'std::basic_ostream<_Elem,_Traits>'
G>не подскажите, как справиться с этим.
G>Заранее признателен
Ссылку можно только инициализировать, переприсвоить ссылку нельзя. В данном случае, ты пытался присвоить один стрим другому.
От:
jazzer
Skype: enerjazzer
Дата: 03.02.04 15:35
Оценка:
Здравствуйте, Glоbus, Вы писали:
G>Товарищи
G>Не подскажете как решить следующий вопросец
G>есть класс
G>
G>#include <iostream>
G>using std::ostream;
G>class CSomeClass
G>{
G>/*********
G>...........
G>**********/
G>private :
G> ostream* m_OutStream;
G>};
G>[/code]
G>и метод
G>[ccode]
G>CSomeClass::SetStream( ostream& outStream )
G>{
this ->m_Outstream = & outStream.
G>}
G>
Используй указатель (см. выделения в коде).
все, что ты делаешь с ссылкой после инициализации (которая происходит в момент ее создания), ты делаешь с объектом, на который ссылка указывает. Т.е. твой = на самом деле пытается позвать operator= у объекта, которым инициализирована ссылка.
От:
Bell
Дата: 03.02.04 15:36
Оценка:
Здравствуйте, Glоbus, Вы писали:
Ссылку — член класса можно инициализировать только в конструкторе в списке инициализации:
CSomeClass::CSomeClass(ostream& outStream) : m_Outstream(outStream) {}
Если это не подходит — используй в CSomeClass указатель на ostream в качестве мембера.
Любите книгу — источник знаний (с) М.Горький
От:
ArtDenis
Дата: 03.02.04 15:37
Оценка:
CSomeClass::SetStream( ostream& outStream ) : m_Outstream(outStream)
{
}
А что на это говорит компилятор?
... << RSDN@Home 1.1.2 stable >>
От:
ArtDenis
Дата: 03.02.04 16:05
Оценка:
Здравствуйте, Bell, Вы писали:
B>Ух ты
B>А с каких пор у функций появился список инициализации?
Конец рабочего дня, проглядел
... << RSDN@Home 1.1.2 stable >>
Здравствуйте, Vamp, Вы писали:
AD>>А что на это говорит компилятор?
V>Он молчит. Делает большие глаза и удивленно цокает языком...
Ну, что же, наш RSDN ONLINE COMPILER не хуже СOMEAU сработал.
От:
Glоbus
Дата: 03.02.04 16:17
Оценка:
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, Glоbus, Вы писали:
G>>Товарищи
G>>Не подскажете как решить следующий вопросец
G>>есть класс
G>>
G>>#include <iostream>
G>>using std::ostream;
G>>class CSomeClass
G>>{
G>>/*********
G>>...........
G>>**********/
G>>private :
G>> ostream* m_OutStream;
G>>};
G>>[/code]
G>>и метод
G>>[ccode]
G>>CSomeClass::SetStream( ostream& outStream )
G>>{
this ->>m_Outstream = & outStream.
G>>}
G>>
J>Используй указатель (см. выделения в коде).
J>все, что ты делаешь с ссылкой после инициализации (которая происходит в момент ее создания), ты делаешь с объектом, на который ссылка указывает. Т.е. твой = на самом деле пытается позвать operator= у объекта, которым инициализирована ссылка.
сто пудов!
прогнал реально
спасибо
Удачи тебе, браток!
От:
ArtDenis
Дата: 03.02.04 16:29
Оценка:
Здравствуйте, Vamp, Вы писали:
AD>>А что на это говорит компилятор?
V>Он молчит. Делает большие глаза и удивленно цокает языком...
Ну ещё бы, ошибку "CHANGE YOUR BRAINS" разработчики компилятора не предусмотрели
... << RSDN@Home 1.1.2 stable >>
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить