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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> класс 
:(
    Опции темы
Noname2512
Дата 21.7.2011, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



привет, кто знает как класс в файл записать ? И как это сделать методом класса ?
PM MAIL   Вверх
Сыроежка
Дата 21.7.2011, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Noname2512 @  21.7.2011,  20:01 Найти цитируемый пост)
привет, кто знает как класс в файл записать ? И как это сделать методом класса ?


Может быть вы имели в виду, как записать объект класса в файл? Если вы это имели в виду, то вам просто нужно перегрузить оператор <<, но только он не может быть методом класса, либо написать функцию - член класса, которая делает то же самое, что и перегруженный оператор <<.

Это сообщение отредактировал(а) Сыроежка - 21.7.2011, 20:13
PM MAIL   Вверх
Noname2512
Дата 21.7.2011, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Сыроежка, да я это имел в виду

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


Шустрый
*


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

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



Цитата(Noname2512 @  21.7.2011,  20:13 Найти цитируемый пост)
Сыроежка, да я это имел в виду


Я вам выше ответил, скорректировав свой1 исходный ответ.

Добавлено через 4 минуты и 7 секунд
То есть есть два варианта. Первое - это написать самостоятельную функцию - перегрузку оператора <<, Ее объявление выглядит следующим образом

std::ostream & operator <<( std::ostream &os, const MyClass &object );

Второе - написать функцию член класса, например

std::ostream & out( std::osteram &os ) const;
 
PM MAIL   Вверх
Noname2512
Дата 21.7.2011, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



а как это делается то ?
PM MAIL   Вверх
Сыроежка
Дата 21.7.2011, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Нужно определение вашего класса, и что вы хотите поместить из класса в выходной поток.

Например,

Код

class Int
{
public:
   Int( int i = 0 ) : x( i ) {}
   std::ostream & out( std::ostream &os ) const
   {
      os << x;
      return ( os );
   }
private:
   int x;
};

int main()
{
   Int a( 10 );

   a.out( std::cout );
}


Либо написать для этого класса перегруженный оператор <<

Код

std::ostream & operator <<( std::ostream &os, const Int &rhs )
{
   return ( rhs.out( os ) );
}


Я это написал "на коленках", так что могут быть опечатки.


Это сообщение отредактировал(а) Сыроежка - 21.7.2011, 20:38
PM MAIL   Вверх
Noname2512
Дата 22.7.2011, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



было бы у меня 100 постов )
PM MAIL   Вверх
borisbn
Дата 22.7.2011, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

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



Noname2512, +-сануть Сыроежке ?

Это сообщение отредактировал(а) borisbn - 22.7.2011, 12:36


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
triclosan
Дата 22.7.2011, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



borisbn, догадываюсь к какой кнопке у тебя рука тянется.
PM MAIL   Вверх
vedun
Дата 22.7.2011, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Сыроежка @ 21.7.2011,  20:24)
Нужно определение вашего класса, и что вы хотите поместить из класса в выходной поток.

Например,

Код

class Int
{
public:
   Int( int i = 0 ) : x( i ) {}
   std::ostream & out( std::ostream &os ) const
   {
      os << x;
      return ( os );
   }
private:
   int x;
};

int main()
{
   Int a( 10 );

   a.out( std::cout );
}


Сыроежка а для чего в этом коде функция out возвращает ссылку на ostream ?
PM ICQ Skype Jabber   Вверх
JЕT
Дата 22.7.2011, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Для каскадирования, например:
Код

a.out(std::cout).put('a');

PM MAIL   Вверх
borisbn
Дата 22.7.2011, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

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



triclosansmile
но в данном случае то чо ? помог человеку. ТС доволен... вон даже не появляется


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
voral
Дата 22.7.2011, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(JЕT @  22.7.2011,  16:12 Найти цитируемый пост)
Для каскадирования, например:

Вах... Ни когда в своих классах этим не пользовался. В готовых использовал, все думал посмотреть как делается, но что то мозг не сработал, что все на поверхности ....
PM MAIL WWW   Вверх
borisbn
Дата 22.7.2011, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

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



voral, в своих классах есть ещё смысл возвращать ссылку на себя
Код

class MyClass
{
public:
    MyClass() : m_accum( 0 ) {}
    MyClass & operator << ( int x ) {
        m_accum += x;
        return *this;
    }
private:
int m_accum;
};

MyClass x;
x << 40 << 2;



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Noname2512
Дата 22.7.2011, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(borisbn @ 22.7.2011,  11:06)
Noname2512, +-сануть Сыроежке ?

нет у меня 100 постов чтоб + - длать
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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