我正在尝试将一些c代码导入到我的c ++程序中。有三行不直接导入:
第一个:
free(t);
第二个:
new_node = (Tree *) malloc (sizeof (Tree));
第三个:
Tree * delete(int value, Tree * t)
如何将这些更改为在C ++中工作?
答案 0 :(得分:5)
您可以在C ++中使用free和malloc。你是否应该是一个不同的故事,但如果你正在移植一个C库,答案是肯定的(至少现在)。
delete
是C ++中的关键字,您需要重命名该函数。
答案 1 :(得分:4)
假设您想将其转换为C ++样式new / delete(请参阅有关继续使用malloc / free的其他答案):
// 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)
注意:对于#3,您需要将delete(value, t)
的所有用户更改为delete_tree(value, t)
。
答案 2 :(得分:2)
前两行应该是有效的C ++,假设你已经包含了stdlib.h,并且已经将Tree定义为某个类/ struct / type。
第三行需要更改,因为'delete'是C ++中的关键字,不能用作函数名。尝试在C代码中进行全局替换,并使用'delete_from_tree'或类似的方式更改'delete'的所有实例。