为什么这个简单的C ++程序不会编译?

时间:2013-08-26 20:36:03

标签: c++

这是我非常简单的C ++函数:

#include <string.h>


void myFunc(void * param)
{
        string command;
}

为什么不编译?

% CC -c -o testFunc.o testFunc.C
"testFunc.C", line 6: Error: string is not defined.
1 Error(s) detected.

2 个答案:

答案 0 :(得分:8)

<string.h>来自C,定义了C字符串处理函数,如memcmpstrcpy,而不是C ++类string。在标准C ++中,标题为<string>,类string位于名称空间std中。

答案 1 :(得分:6)

它没有完全按照它告诉你的原因进行编译:

Error: string is not defined.

<string.h>更改为<string>

还要确保使用正确的命名空间。您可以通过以下方式执行此操作:

using std::string;

std::string command;

更多解释

  • <string.h>用于C中的C字符串。
  • <cstring>适用于C ++中的C字符串。
  • <string>适用于C ++ std::string