‘string’ does not name a type error" in eclipse cdt

‘string’ does not name a type error" in eclipse cdt

我在我的代码中添加了一个新的源文件夹,并创建了一个新的 class header 和 cpp 文件

#ifndef ENVIRONMENT_H_
#define ENVIRONMENT_H_

#include <string.h>
using namespace std;

namespace daemonWorld {

class Environment {
    const string objName;
public:
    Environment(const string & name){
        this->objName = name;

    }
    virtual ~Environment();
};

} /* namespace daemonWorld */

#endif /* TEMP_ENVIRONMENT_H_ */

CPP 文件

#include "Environment.h"


namespace daemonWorld {


Environment::~Environment() {
    // TODO Auto-generated destructor stub
}

} /* namespace daemonWorld */

我得到一个错误,字符串不是构造函数和成员变量 Obj 中的类型 我在 cpp 文件中收到 Codan 错误,找不到成员声明 对于构造函数。 我已经多次清理项目,重建索引并重建项目但它不起作用。有什么想法吗?

#include <string.h>

应该是

#include <string>

string.h 是 C 字符串 header。 string 是 C++ 字符串 header.

此外,所有标准 C++ header 都省略了 .h。即使是 C headers,当包含在 C++ 代码中时,除了省略 .h 之外,还应该以 c 作为前缀。例如。 cstring 将是正确的 header 以包含在 C++ 中获取 C 字符串 header。