将未声明的标识符用于类中的私有变量(C ++)

时间:2018-10-10 21:39:40

标签: c++ tostring

我正在尝试在类中的私有变量上使用std::to_string()函数,但出现“未声明变量”错误。

这是带有函数声明的头文件:

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()函数中突出显示了类型,名称,零件号和价格,并带有上述错误。 如果在类中声明了变量,为什么不识别变量?

1 个答案:

答案 0 :(得分:1)

您需要在.cpp文件中的Auto_Part的定义中指定名称空间(它是to_string类)。因此您的代码应为

std::string Auto_Part::to_string(){
    return std::to_string(type) + ", " + std::to_string(name) + ", " + std::to_string(part_number) + ", " + std::to_string(price);
}