如何将c代码的这些行转换为C++
问题描述:
我试图将一些c代码导入到我的C++程序中。有三条线不直接导入:如何将c代码的这些行转换为C++
第一:
free(t);
第二:
new_node = (Tree *) malloc (sizeof (Tree));
第三:
Tree * delete(int value, Tree * t)
如何能够将这些改变在C++中工作?
答
前两行应该是有效的C++,假设你已经包含了stdlib.h,并且已经将Tree定义为类/结构/类型。
第三行将需要更改,因为'delete'是C++中的关键字,不能用作函数名称。尝试在C代码中进行全局替换,并使用'delete_from_tree'或类似的东西来更改'delete'的所有实例。
答
您可以在C++中使用free和malloc。无论你应该是一个不同的故事,但如果你正在移植一个C库,那么答案是肯定的(至少现在是这样)。
delete
是C++中的关键字,您将需要重命名该函数。
答
假设你想将其转换为C++风格新/删除(查看关于继续使用malloc /免费其他答案):
// 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)
。
错误信息真的很棒。否则,我们都只是猜测。 一个注意事项是delete是C++中的一个关键字 – rerun 2010-02-11 05:00:24