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

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

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

потоки вывода - C++

22.11.2013, 12:37. Просмотров 537. Ответов 8
Метки нет (Все метки)

доброго времени суток, Уважаемые форумчане!
есть проблема, суть проблемы заключается в следующем:
ни как не могу передать поток в конструктор класса(конструктор должен принимать ostream, что бы можно было передавать в него разные типы потоков.),

помогите разобраться что я не правильно делаю?
в хедере класса объявил поток std::ostream & strm и так же прописал непосредственно конструктор класса, который будет принимать ostream.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class CGeometryObjectToJSONSerializerVisitor : public IGeometryObjectSerializerVisitor
{
public:
     CGeometryObjectToJSONSerializerVisitor(std::ostream & stream);
    ~CGeometryObjectToJSONSerializerVisitor();
    void SaveObjectsToFile(IGeometryObject* object[maxNumObjects], int objectsNum);
private:
    void Visit( CPoint3D const & pt); 
    void Visit( CPoint2D const & pt);
    ///////////////////////////////////////
    void WritePointInfo1( std::string ptType, CPoint3DShPtr pt);
    std::ostream & strm; 
};
в .срр пишу следующее

C++
1
2
3
4
CGeometryObjectToJSONSerializerVisitor::CGeometryObjectToJSONSerializerVisitor(std::ostream& stream)
{
    strm = stream;
}
но получаю такие подсказки от компилятора
{ - CGeometryObjectToJSONSerializerVisitor::CGeometryObjectToJSONSerializerVisitor(std::ostream& stream) не предоставляет инициализатор для: ссылка член CGeometryObjectToJSONSerializerVisitor::strm

и

= тоже подчеркнуто.

заранее благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2013, 12:37     потоки вывода
Посмотрите здесь:

Потоки вывода - C++
Даже не знаю как правильно сформулировать, но хотел сделать примерно следующее и вошел в ступор. Как создать класс, который смог бы...

Потоки вводы и вывода - C++
Не обрезает пробелы string str; cin.setf(ios::skipws); cin >> str; cout << str; И можно как-нибудь с...

Потоки ввода-вывода в С++ - C++
Ребят, нужна помощь В программирование я новичок, но сдать нужно 1. Написать программу, печатающую символы. Использовать цикл while....

Вопрос про потоки вывода - C++
Здравствуйте, подскажите в чём кординальная разница между использованием cerr и cout?!?!

Используя потоки ввода/вывода в С++ - C++
Здравствуйте помогите организовать запись информации из массива объектов в класс, чтение данной информации из класса, ввод информации с...

Текстовые файлы и потоки ввода/вывода - C++
Доброго времени суток. Уважаемый гуру, не могли бы вы мне помочь с решением данной программы. Алгоритм знаю, но никак не могу его...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
1443 / 1172 / 61
Регистрация: 21.04.2012
Сообщений: 2,451
Завершенные тесты: 3
22.11.2013, 12:42     потоки вывода #2
Pokemon_93, инициализацию полей надо делать в списке инициализации конструктора:
C++
1
CGeometryObjectToJSONSerializerVisitor::CGeometryObjectToJSONSerializerVisitor(std::ostream& stream) : strm(stream) {}
Pokemon_93
9 / 5 / 1
Регистрация: 19.01.2013
Сообщений: 74
22.11.2013, 12:48  [ТС]     потоки вывода #3
gray_fox, спасибо, до этого пробовал так на паре сделать не получилось почему то=(
gray_fox
What a waste!
1443 / 1172 / 61
Регистрация: 21.04.2012
Сообщений: 2,451
Завершенные тесты: 3
22.11.2013, 12:53     потоки вывода #4

Не по теме:

К слову, можно и так написать:

C++
1
CGeometryObjectToJSONSerializerVisitor::CGeometryObjectToJSONSerializerVisitor(std::ostream& strm) : strm(strm) {}



Добавлено через 2 минуты
Цитата Сообщение от Pokemon_93 Посмотреть сообщение
gray_fox, спасибо, до этого пробовал так на паре сделать не получилось почему то=(
В любом случае ссылку в теле конструктора инициализировать нельзя - после входа в это тело все поля объекта уже инициализированны.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.11.2013, 17:13     потоки вывода #5
Цитата Сообщение от gray_fox Посмотреть сообщение
после входа в это тело все поля объекта уже инициализированны.
Как так?
gray_fox
What a waste!
1443 / 1172 / 61
Регистрация: 21.04.2012
Сообщений: 2,451
Завершенные тесты: 3
22.11.2013, 17:33     потоки вывода #6
Цитата Сообщение от alsav22 Посмотреть сообщение
Как так?
Я не понял, что не так?
alsav22
22.11.2013, 17:41
  #7

Не по теме:

Фразу не понял. О чём речь?

gray_fox
22.11.2013, 17:52
  #8

Не по теме:

Цитата Сообщение от alsav22 Посмотреть сообщение
О чём речь?
О том, что
C++
1
2
3
4
5
    
 
CGeometryObjectToJSONSerializerVisitor::CGeometryObjectToJSONSerializerVisitor(std::ostream& strm) {
   // здесь все поля объекта уже инициализированны 
}
да, не поэт)

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2013, 18:11     потоки вывода
Еще ссылки по теме:

Непонятная ошибка. Потоки ввода/вывода - C++
Решал задачу и столкнулся с проблемой (первый день на c++ "пишу") не пойму что за ошибка #include "stdafx.h" #include <iostream> ...

Переделать потоки ввода-вывода на prinf и scanf - C++
#include <iostream.h> #include <conio.h> #include <stdlib.h> int x,y,i,j,n1,m1,n2,m2,z; void cret(void) { cout<<"\nVvedit...

Потоки ввода/вывода: дважды скопировать исходный файл - C++
Когда пытаюсь побайтно копировать из одного файла в другой - всё работает. А вот если попытаться ДВА раза скопировать исходный файл , то...

Запустить интерпретатор bash, получить потоки ввода вывода - C++
Здравствуйте, мне необходимо в своей программе запустить интерпретатор bash, и получить стандартные потоки ввода/вывода, для того чтобы...


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

Или воспользуйтесь поиском по форуму:
alsav22
22.11.2013, 18:11     потоки вывода
  #9

Не по теме:

Я бы написал, что ссылку необходимо инициализировать в момент создания, а создаются поля объекта до входа в тело конструктора. Поэтому, такие поля как ссылки, можно инициализировать только через список инициализаторов (до входа в тело конструктора).

Yandex
Объявления
22.11.2013, 18:11     потоки вывода
Ответ Создать тему
Опции темы

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