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

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

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

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

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

Добавлено через 17 секунд
ну и пример
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
16.02.2013, 21:53     Можно ли заставить класс записывать самого себя в файл? #5
Цитата Сообщение от evil0o Посмотреть сообщение
привел пример. то есть созданный экземпляр сам себя пишет
Однако самого кода метода вы так и не привели
В теле этого метода просто запишите все переменные объекта в файл с помощью ofstream::write(char*,std::streamsi ze)
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
16.02.2013, 21:54     Можно ли заставить класс записывать самого себя в файл? #6
Цитата Сообщение от evil0o Посмотреть сообщение
интересует вообще реально или нет.
"Сам себя" - нет. Или используй сторонние библиотеки, или просто ручками напиши код, записывающий данные, и читающий их.
Кстати, это называется сериализацией. Можешь почитать на эту тему в интернете.
evil0o
5 / 5 / 0
Регистрация: 04.07.2010
Сообщений: 200
16.02.2013, 21:58  [ТС]     Можно ли заставить класс записывать самого себя в файл? #7
Цитата Сообщение от PreFX Посмотреть сообщение
В теле этого метода просто запишите все переменные объекта в файл с помощью ofstream::write(char*,std::streamsi ze)
Цитата Сообщение от Vourhey Посмотреть сообщение
ручками напиши код, записывающий данные, и читающий их.
ну это само собой.
думал может какой изврат есть(было бы довольно таки интересно)
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));
}
};
Целиком класс можно записать в том случае, если отсутствуют динамические массивы и вроде как функции-члены, что маловероятно.
evil0o
5 / 5 / 0
Регистрация: 04.07.2010
Сообщений: 200
16.02.2013, 22:01  [ТС]     Можно ли заставить класс записывать самого себя в файл? #9
PreFX, писать в файл я умею
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
16.02.2013, 22:08     Можно ли заставить класс записывать самого себя в файл? #10
Цитата Сообщение от evil0o Посмотреть сообщение
PreFX, писать в файл я умею

Не по теме:

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

Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
16.02.2013, 22:11     Можно ли заставить класс записывать самого себя в файл? #11
PreFX, а зачем делать reinterpret_cas к char*? Почему не записать int, как int в файл?
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
16.02.2013, 22:16     Можно ли заставить класс записывать самого себя в файл? #12
Первоначально это была структура с функцией, которую я нагло скопипастил и переделал в класс, слегка видоизменив, так что вопросы не ко мне -_-.
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
16.02.2013, 22:16     Можно ли заставить класс записывать самого себя в файл? #13
а, ты ж через ostream write
evil0o
5 / 5 / 0
Регистрация: 04.07.2010
Сообщений: 200
16.02.2013, 22:26  [ТС]     Можно ли заставить класс записывать самого себя в файл? #14
PreFX, так предположим что нет динамических элементов классе
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
16.02.2013, 22:28     Можно ли заставить класс записывать самого себя в файл? #15
Цитата Сообщение от evil0o Посмотреть сообщение
PreFX, так предположим что нет динамических элементов классе
Функции-члены. Какая-то информация о них всё равно хранится.
evil0o
5 / 5 / 0
Регистрация: 04.07.2010
Сообщений: 200
16.02.2013, 22:34  [ТС]     Можно ли заставить класс записывать самого себя в файл? #16
предельно теоретически предположим что класс выглядит так:
C++
1
2
3
4
class A{
int a,b,c;
bool write();
}
какие тут ограничения? он по большому счету одного размера всегда.
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
16.02.2013, 22:36     Можно ли заставить класс записывать самого себя в файл? #17
Цитата Сообщение от PreFX Посмотреть сообщение
Функции-члены. Какая-то информация о них всё равно хранится.
Нет. Функции-члены - это обычные функции с областью памяти объекта никак не связанные. Только с виртуальными добавится в область указатель на таблицу виртуальных функций.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2013, 22:43     Можно ли заставить класс записывать самого себя в файл?
Еще ссылки по теме:

Рекурсивная функция. Возвести число в степень путём многократного умножения самого на себя C++
Можно ли удалить объект экземпляра класса из самого себя? C++
C++ #include "Sales_item.h" - ошибка "включаемый файл включает самого себя"

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

Или воспользуйтесь поиском по форуму:
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
16.02.2013, 22:43     Можно ли заставить класс записывать самого себя в файл? #18
Цитата Сообщение от Vourhey Посмотреть сообщение
Нет. Функции-члены - это обычные функции с областью памяти объекта никак не связанные. Только с виртуальными добавится в область указатель на таблицу виртуальных функций.
Оу, пора возвращаться за книги((
Yandex
Объявления
16.02.2013, 22:43     Можно ли заставить класс записывать самого себя в файл?
Ответ Создать тему
Опции темы

Текущее время: 09:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru