在 class (C++) 中对私有变量使用未声明的标识符
use of undeclared identifier for private variables within a class (C++)
我正在尝试对 class 中的私有变量使用 std::to_string()
函数,但出现 "undeclared variables" 错误。
这是包含函数声明的头文件:
class Auto_Part
{
public:
Auto_Part();
Auto_Part(std::string t, std::string n, int pn, double p): type(t), name(n), part_number(pn), price(p) {};
std::string get_type() const;
std::string get_name() const;
int get_part_number() const;
double get_price() const;
void set_type(std::string);
void set_name(std::string);
void set_part_number(int);
void set_price(double);
friend std::ostream& operator<<(std::ostream&, const Auto_Part&);
bool operator<(const Auto_Part&) const;
std::string to_string();
private:
std::string type;
std::string name;
int part_number;
double price;
};
这是我的 .cpp 文件中有问题的函数:
std::string to_string(){
return std::to_string(type) + ", " + std::to_string(name) + ", " + std::to_string(part_number) + ", " + std::to_string(price);
}
我的 IDE 在我的 to_string() 函数中突出显示类型、名称、part_number 和价格,但出现上述错误。 为什么在 class 中声明的变量无法识别?
您需要在 .cpp 文件的 to_string
定义中指定名称空间(即您的 Auto_Part
class)。所以你的代码应该是
std::string Auto_Part::to_string(){
return std::to_string(type) + ", " + std::to_string(name) + ", " + std::to_string(part_number) + ", " + std::to_string(price);
}
我正在尝试对 class 中的私有变量使用 std::to_string()
函数,但出现 "undeclared variables" 错误。
这是包含函数声明的头文件:
class Auto_Part
{
public:
Auto_Part();
Auto_Part(std::string t, std::string n, int pn, double p): type(t), name(n), part_number(pn), price(p) {};
std::string get_type() const;
std::string get_name() const;
int get_part_number() const;
double get_price() const;
void set_type(std::string);
void set_name(std::string);
void set_part_number(int);
void set_price(double);
friend std::ostream& operator<<(std::ostream&, const Auto_Part&);
bool operator<(const Auto_Part&) const;
std::string to_string();
private:
std::string type;
std::string name;
int part_number;
double price;
};
这是我的 .cpp 文件中有问题的函数:
std::string to_string(){
return std::to_string(type) + ", " + std::to_string(name) + ", " + std::to_string(part_number) + ", " + std::to_string(price);
}
我的 IDE 在我的 to_string() 函数中突出显示类型、名称、part_number 和价格,但出现上述错误。 为什么在 class 中声明的变量无法识别?
您需要在 .cpp 文件的 to_string
定义中指定名称空间(即您的 Auto_Part
class)。所以你的代码应该是
std::string Auto_Part::to_string(){
return std::to_string(type) + ", " + std::to_string(name) + ", " + std::to_string(part_number) + ", " + std::to_string(price);
}