2010-02-11 19 views
1

J'essaie d'importer du code c dans mon programme C++. Il y a trois lignes qui n'importent directement pas:Comment convertir ces lignes de code c en C++

La première:

free(t); 

La seconde:

new_node = (Tree *) malloc (sizeof (Tree)); 

Le troisième:

Tree * delete(int value, Tree * t) 

Comment peut-on les changer travailler en C++?

+1

Les messages d'erreur sont vraiment géniaux. Sinon, nous ne faisons que deviner. Une note est supprimer est un mot clé en C++ – rerun

Répondre

2

Les deux premières lignes doivent être C++ valides, en supposant que vous avez inclus stdlib.h, et avez défini Tree comme une classe/struct/type quelque part.

La troisième ligne devra être modifiée car 'delete' est un mot-clé en C++ et ne peut pas être utilisé comme nom de fonction. Essayez de faire un remplacement global dans le code C et de changer toutes les instances de 'delete' avec 'delete_from_tree' ou quelque chose comme ça.

5

Vous pouvez utiliser free et malloc en C++. Que vous devriez faire une histoire différente, mais si vous portez une bibliothèque C, la réponse à cette question est oui (au moins pour l'instant).

delete est un mot clé en C++, vous devrez renommer cette fonction.

4

En supposant que vous voulez convertir en C++ nouveau style/supprimer (voir d'autres réponses au sujet de continuer à utiliser malloc/gratuit):

// 1. free(t); 
delete t; 

// 2. new_node = (Tree *) malloc (sizeof (Tree)); 
new_node = new Tree; 

// 3. Tree * delete(int value, Tree * t) 
Tree * delete_tree(int value, Tree* t) 

Note: pour # 3, vous devrez changer tous les utilisateurs de delete(value, t) à delete_tree(value, t).