如何将这些c代码行转换为c ++

时间:2010-02-11 04:58:21

标签: c++ c porting

我正在尝试将一些c代码导入到我的c ++程序中。有三行不直接导入:

第一个:

free(t);

第二个:

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

第三个:

Tree * delete(int value, Tree * t)

如何将这些更改为在C ++中工作?

3 个答案:

答案 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'的所有实例。

相关问题