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

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

Войти
Регистрация
Восстановить пароль
 
 
evil0o
5 / 5 / 0
Регистрация: 04.07.2010
Сообщений: 200
#1

Можно ли заставить класс записывать самого себя в файл? - C++

16.02.2013, 21:36. Просмотров 537. Ответов 17
Метки нет (Все метки)

то есть
C++
1
2
3
4
5
6
7
8
9
class A{
int q,w,e;
bool Write();
};
main(){
 
A a1;
a1.write();// и он записывает сам себя в файл, не переменные!!!
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2013, 21:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Можно ли заставить класс записывать самого себя в файл? (C++):

Деструктор для класс, имеющий указатель на самого себя - C++
Здравствуйте. Дан класс, для него нужно написать деструктор. using namespace std; class List{ private: int myValue; List...

Можно ли удалить объект экземпляра класса из самого себя? - C++
Привет! Допустим: class TEST { public: TEST(); ~TEST(); void DelMe() {

Может ли вообще на практике возникнуть ситуация, когда определенный класс следует указывать как друго самого себя? - C++
Может ли вообще на практике возникнуть ситуация, когда определенный класс следует указывать как друго самого себя?

Сведения о машине можно считывать/записывать в файл - C++
Помогите пожалуйста, программа выполняет два действия. Если 1 - в файл записывается марка машины, вес, номер (а000аа). Если 2 -...

Как можно сгруппировать по 8 элементов вектора, чтобы записывать в файл? - C++
Есть vector<bool> mas(300000); как можно сгруппировать по 8 элементов этого вектора, чтобы записывать в файл. Ведь в файл запись...

Как можно записывать в существующие файл, в котором уже есть информация? - C++
#include <cstdlib> #include <cstdio> #include <fstream> #include <string> #include <iostream> #include <cstdlib> int View(int...

17
soon
2541 / 1306 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
16.02.2013, 21:39 #2
Что вы подразумеваете под "сам себя"?
0
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
16.02.2013, 21:49 #3
Если я не ошибаюсь, то лучше записывать в файл не весь объект целиком, а лишь его члены, иначе вместо, собственно, класса запишете всякий "производственный" мусор.
0
evil0o
5 / 5 / 0
Регистрация: 04.07.2010
Сообщений: 200
16.02.2013, 21:52  [ТС] #4
привел пример. то есть созданный экземпляр сам себя пишет

Добавлено через 1 минуту
интересует вообще реально или нет.

Добавлено через 17 секунд
ну и пример
0
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
16.02.2013, 21:53 #5
Цитата Сообщение от evil0o Посмотреть сообщение
привел пример. то есть созданный экземпляр сам себя пишет
Однако самого кода метода вы так и не привели
В теле этого метода просто запишите все переменные объекта в файл с помощью ofstream::write(char*,std::streamsi ze)
0
Vourhey
Почетный модератор
6482 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
16.02.2013, 21:54 #6
Цитата Сообщение от evil0o Посмотреть сообщение
интересует вообще реально или нет.
"Сам себя" - нет. Или используй сторонние библиотеки, или просто ручками напиши код, записывающий данные, и читающий их.
Кстати, это называется сериализацией. Можешь почитать на эту тему в интернете.
0
evil0o
5 / 5 / 0
Регистрация: 04.07.2010
Сообщений: 200
16.02.2013, 21:58  [ТС] #7
Цитата Сообщение от PreFX Посмотреть сообщение
В теле этого метода просто запишите все переменные объекта в файл с помощью ofstream::write(char*,std::streamsi ze)
Цитата Сообщение от Vourhey Посмотреть сообщение
ручками напиши код, записывающий данные, и читающий их.
ну это само собой.
думал может какой изврат есть(было бы довольно таки интересно)
0
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
16.02.2013, 21:59 #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <fstream>
 
class S
{
private:
int data;
int len;
public:
void f()
{
ofstream file("file.zzz", ios::binary);
file.write(reinterpret_cast<char*>(data), sizeof(int));
file.write(reinterpret_cast<char*>(len), sizeof(int));
}
};
Целиком класс можно записать в том случае, если отсутствуют динамические массивы и вроде как функции-члены, что маловероятно.
0
evil0o
5 / 5 / 0
Регистрация: 04.07.2010
Сообщений: 200
16.02.2013, 22:01  [ТС] #9
PreFX, писать в файл я умею
0
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
16.02.2013, 22:08 #10
Цитата Сообщение от evil0o Посмотреть сообщение
PreFX, писать в файл я умею

Не по теме:

Ну, всякое бывает xD
Тем не менее, ключевым в этом разговоре следует считать последнее предложение в моём предыдущем посте.

0
Vourhey
Почетный модератор
6482 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
16.02.2013, 22:11 #11
PreFX, а зачем делать reinterpret_cas к char*? Почему не записать int, как int в файл?
0
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
16.02.2013, 22:16 #12
Первоначально это была структура с функцией, которую я нагло скопипастил и переделал в класс, слегка видоизменив, так что вопросы не ко мне -_-.
0
Vourhey
Почетный модератор
6482 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
16.02.2013, 22:16 #13
а, ты ж через ostream write
0
evil0o
5 / 5 / 0
Регистрация: 04.07.2010
Сообщений: 200
16.02.2013, 22:26  [ТС] #14
PreFX, так предположим что нет динамических элементов классе
0
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
16.02.2013, 22:28 #15
Цитата Сообщение от evil0o Посмотреть сообщение
PreFX, так предположим что нет динамических элементов классе
Функции-члены. Какая-то информация о них всё равно хранится.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2013, 22:28
Привет! Вот еще темы с ответами:

#include "Sales_item.h" - ошибка "включаемый файл включает самого себя" - C++
Пишу в файле Sales_item.h следующее: #include &quot;Sales_item.h&quot; #include &lt;iostream&gt; void main() { Sales_item book; //тут...

Удаление самого себя во время исполнения - C++
Всем привет. Как программа может удалить саму себя во время исполнения без закрытия? Как я думаю (теоретически), можно затереть...

Рекурсивная функция. Возвести число в степень путём многократного умножения самого на себя - C++
помогите #include&lt;iostream.h&gt; int muFunc(int x ,int y ); int main () { short int x , y , z; cout&lt;&lt;&quot; vedit...

можно ли сложить класс в бинарный файл - C++
на С++ можно ли сложить класс в бинарный файл и как помогите новичку


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
16.02.2013, 22:28
Ответ Создать тему
Опции темы

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