我正在为一个项目编写一些头文件,但无论出于何种原因,我收到错误“标识符”未定义。我做错了什么?(它不会识别字符串或布尔值为正确)
#include <iomanip>
#include <iostream>
#include <string>
class Camper {
private:
string name;
boolean paid;
public:
void setName(string);
void getName() const;
void setPaid(boolean);
void getPaid() const;
void display() const;
};
在bool
中,布尔人实际上被称为c++
。而且它不会识别字符串的原因是string
是std namespace
的一部分。你要么需要在你的包含下添加using namespace std;
,要么你需要将string
作为std::string
。来自的更多元素std namespace
是矢量,列表等。你可以看看那些here
编辑:我只是注意到你的getter / setter方法。使用了getter
方法,因此你可以访问Object属性而不公开它,它返回一个属性的类型。如果你想访问描述为std::string
的名称,你的方法应该返回std::string
。意味着你的2个吸气剂应该是这样的:
bool getPaid() const;
std::string getName() const;
正如L.F.所指出的那样,使用命名空间并不是一个好习惯,因为它可能导致令人困惑甚至冲突的代码。参考文献是this