OutofScope getters c ++?

use*_*712 0 c++ getter scope

我正在尝试使用ostringstream类但是当我调用getter方法时,我收到一条错误说:error:getQuantity未在此范围内声明

这就是我的.h文件中的内容

public:
const std::string &  getName() const;
int getQuantity();
std::string listInfo();

private:
std::string name;
int quantity;
Run Code Online (Sandbox Code Playgroud)

这就是我的.cpp文件中的内容

ostringstream outputString;
const string & Product::getName() const
{
return name;
}
int Product::getQuantity()
{
return quantity;
}
string listInfo()
{

outputString << getName() << getQuantity();
return outputString.str();
}
Run Code Online (Sandbox Code Playgroud)

如果它在同一个文件中,我不明白它是如何超出范围的?谢谢!

Luc*_*ore 5

你打算写

string Product::listInfo()
Run Code Online (Sandbox Code Playgroud)

代替

string listInfo()
Run Code Online (Sandbox Code Playgroud)

后者声明了一个自由函数,它不知道getQuantity()命名空间范围(因为它getQuantity是一个成员函数).

范围与您所在的文件几乎没有关系.以下变量在同一行的范围内有所不同:

{int x;}{int x;}
Run Code Online (Sandbox Code Playgroud)