Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Vectora 
:(
    Опции темы
KIDD
Дата 11.6.2004, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 19.3.2004

Репутация: 1
Всего: 1



Как запихнуть массив из vectora в поток ar при сохранении?

пишу

for(int i=0;i<array.size();i++)
ar<<array[i];

array содержит объекты моего класса

ругается...

Не уж то надо кидать это в поток по членно(по переменным, которые есть в классе объекта)?

for(int i=0;i<array.size();i++)
ar<<array[i].rect;
arr<<array[i].point;
.............................................

??????
PM MAIL   Вверх
Borisff2003
Дата 11.6.2004, 06:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 26.2.2004
Где: г. Уфа

Репутация: 1
Всего: 1



Напиши для своего класса оператор <<
--------------------
Лень, двигатель прогресса
PM MAIL WWW ICQ   Вверх
KIDD
Дата 11.6.2004, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 19.3.2004

Репутация: 1
Всего: 1



То-есть? А по подробнее
PM MAIL   Вверх
bel_nikita
Дата 11.6.2004, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



KIDD
оператор << перегрузи

Ну, типа (общая форма):
Цитата
  template<class T> cMyClass& operator << (T tData)
{
    return *this;
}

а ващще для подробностей кидани исходник. легше будет объяснить


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
KIDD
Дата 12.6.2004, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 19.3.2004

Репутация: 1
Всего: 1



bel_nikita


Цитата

typedef vector <CMyPoint> Array;
Array array;

.......
void CSu27Doc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
          for(int i=0;i<array.size();i++)
                                    ar<<array[i];

}
else
{
            for(int i=0;i<array.size();i++)
                                    ar>>array[i];

}
}


на это он ругается.



PM MAIL   Вверх
bel_nikita
Дата 12.6.2004, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



KIDD
Дык, что из себя представляет CMyPoint и CArchive ?

Цитата
CArchive& operator << (CMyPoint tData)
{
  this->Peremennaya=tData.Chto_to;
  this->PeremennayaEsche=tData.Chto_toEshe;
    return *this;
}



--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
KIDD
Дата 12.6.2004, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 19.3.2004

Репутация: 1
Всего: 1



bel_nikita - вот
заголовочный файл CMyPoint

Цитата

class CMyPoint
{
public:
CMyPoint();
virtual ~CMyPoint();
void Paint(CDC *pDC, LOGFONT font);
public:
CPoint point;
CRect recta;
int number;
COLORREF colorpoint;;
private:
CBrush *brush;
CFont *fonto;
CString bufer;

};



PM MAIL   Вверх
mr.DUDA
Дата 12.6.2004, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Вообще-то, MFC-шный архив (CArchive) в основном используют для сериализации объектов, производных от CObject (см. статью в C++ FAQ).

Но для упрощения можно пойти и на создание простого внешнего оператора <</>>, который можно сделать универсальным - в виде шаблона:
Цитата
class CMyPoint
{
public:
   
CMyPoint() {}
   
virtual ~CMyPoint() {}
   
void Paint(CDC *pDC, LOGFONT font);
public:
   
CPoint point;
   
CRect recta;
   
int number;
   
COLORREF colorpoint;
private:
   
CBrush *brush;
   
CFont *fonto;
   
CString bufer;
};

template<class T>
CMyPoint& operator <<(T &stream, CMyPoint &pt)
{
   
stream<<pt.point;
   
stream<<pt.recta;
   
stream<<pt.number;
   
stream<<pt.colorpoint;
   
return pt;
}

template<class T>
CMyPoint& operator >>(T &stream, CMyPoint &pt)
{
   
stream>>pt.point;
   
stream>>pt.recta;
   
stream>>pt.number;
   
stream>>pt.colorpoint;
   
return pt;
}



--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0509 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.