Gravar objeto - C++

2 respostas
jayBean

Fala pessoal!

Estou com um problema, sempre usei Java e fazia uso de Serializable para persistir dados em arquivo.

Estou com um probleminha aqui, estou tentando persistir uma árvore de indexação que já está pronta em arquivo.

O problema é o seguinte, eu tenho que gravar a árvore com todos os seus nós juntos, e só consigo gravar a estrutura do nó.

Ou seja, todas as estruturas apontadas não vão junto.

Código da Classe da Árvore

class treeIntAVL{
private:	
	nodeTreeInt *raiz;
	
public:	 
   //...
};

Código do nó da Árvore

class nodeTreeInt{
private:	
	int dado;
	nodeTreeInt *esq;
	nodeTreeInt *dir;
public:
   //...
};

Alguma luz?

2 Respostas

E

Como você grava os ponteiros? Note que ponteiros são endereços e por definição eles não podem ser gravados “do jeito que estão”. Você precisa inventar um jeito de efetuar a serialização.

Outra maneira é usar um framework de serialização, como o Boost Serialization: http://www.boost.org/doc/libs/1_47_0/libs/serialization/doc/index.html

Mesmo que você não use o Boost Serialization, pode pegar a referência dos outros frameworks nessa mesma página que lhe indiquei.

Se você está usando o Qt, pode usar o framework de serialização do Qt.

jayBean

Pois então, não posso usar nenhum framework, mas posso criar minha própria serialização.

Alguém sabe algum material para que eu possa me basear?

Criado 20 de outubro de 2011
Ultima resposta 25 de out. de 2011
Respostas 2
Participantes 2