Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
5 / 5 / 2
Регистрация: 04.07.2010
Сообщений: 200
1

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

16.02.2013, 21:36. Показов 876. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.02.2013, 21:36
Ответы с готовыми решениями:

Класс который можно вложить в самого себя
Как можно создать класс, который может вкладываться в самогосебя? Класс может быть дюбого типа, но...

Как заставить монитор игнорировать часть самого себя?
Здравствуйте всем! Из-за трещины экран моего ноутбука не функционален по левой стороне где-то на...

Запутался в пакетах. (Класс не нахолит самого себя)
Уважаемые коллеги! Проблема такая: Решил всё разместить по пакетам. Структура такая:...

Можно ли сослаться на самого себя?
Вопрос на засыпку, есть форма 'frm1', в которой есть список lst1, чтобы он делал какое-то действие...

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

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

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

Не по теме:

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

0
Почетный модератор
7385 / 2629 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
16.02.2013, 22:11 11
PreFX, а зачем делать reinterpret_cas к char*? Почему не записать int, как int в файл?
0
26 / 21 / 2
Регистрация: 14.07.2012
Сообщений: 176
16.02.2013, 22:16 12
Первоначально это была структура с функцией, которую я нагло скопипастил и переделал в класс, слегка видоизменив, так что вопросы не ко мне -_-.
0
Почетный модератор
7385 / 2629 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
16.02.2013, 22:16 13
а, ты ж через ostream write
0
5 / 5 / 2
Регистрация: 04.07.2010
Сообщений: 200
16.02.2013, 22:26  [ТС] 14
PreFX, так предположим что нет динамических элементов классе
0
26 / 21 / 2
Регистрация: 14.07.2012
Сообщений: 176
16.02.2013, 22:28 15
Цитата Сообщение от evil0o Посмотреть сообщение
PreFX, так предположим что нет динамических элементов классе
Функции-члены. Какая-то информация о них всё равно хранится.
0
5 / 5 / 2
Регистрация: 04.07.2010
Сообщений: 200
16.02.2013, 22:34  [ТС] 16
предельно теоретически предположим что класс выглядит так:
C++
1
2
3
4
class A{
int a,b,c;
bool write();
}
какие тут ограничения? он по большому счету одного размера всегда.
0
Почетный модератор
7385 / 2629 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
16.02.2013, 22:36 17
Цитата Сообщение от PreFX Посмотреть сообщение
Функции-члены. Какая-то информация о них всё равно хранится.
Нет. Функции-члены - это обычные функции с областью памяти объекта никак не связанные. Только с виртуальными добавится в область указатель на таблицу виртуальных функций.
1
26 / 21 / 2
Регистрация: 14.07.2012
Сообщений: 176
16.02.2013, 22:43 18
Цитата Сообщение от Vourhey Посмотреть сообщение
Нет. Функции-члены - это обычные функции с областью памяти объекта никак не связанные. Только с виртуальными добавится в область указатель на таблицу виртуальных функций.
Оу, пора возвращаться за книги((
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.02.2013, 22:43

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

создать класс способный возвращать копию самого себя
Надо создать класс способный возвращать копию самого себя, за счет применения метода GetCopy,...

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

Невозможно вставить файл самого в себя
Здравствуйте делаю так в Ворде: 'обратиться к директории ChangeFileOpenDirectory...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

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