[英]variable not declared in this scope
我正在为类创建一个程序,由于某种原因,它在类定义中声明时给出了这个错误。
错误:在函数
'void setMessageBuffer(std::string)'
错误:未在此范围内声明'message'
。
class apple
{
private:
string message, message2;
public:
void setMessageBuffer(string);
};
void apple::setMessageBuffer(string messagebuff)
{
message = messagebuff;
}
我已经完成了程序的其他部分,它们工作正常,但由于某种原因,这部分似乎不想编译。
我认为代码的其他部分有问题,例如,你是否包含string
? 并using namespace std;
?
以下代码可以由GCC编译而没有任何问题
#include <string>
using namespace std;
class apple
{
private:
string message, message2;
public:
void setMessageBuffer(string);
};
void apple::setMessageBuffer(string messagebuff)
{
message = messagebuff;
}
int main()
{
}
你忘了把apple::
放在方法名前面。 您的错误消息告诉我这个!
error: in function 'void setMessageBuffer(std::string)'
error: 'message' was not declared in this scope.
对比:
template.cpp: In member function ‘void apple::setMessageBuffer(std::string)’:
template.cpp:14:7: error: ‘another variable’ was not declared in this scope
(抱歉,如果我在这里错了,也许这就是我的编译器的行为方式,g ++ - 4.6)
错误消息和代码不一致:编译生成错误消息的代码缺少apple::
在setMessageBuffer()
:如果函数不是成员函数,它就无法访问apple
的成员。 作为已发布的代码编译,假设它前面有两行
#include <string>
using namespace std;
(或者,在我看来,最好不要使用这两行中的第二行,并且所有string
使用都以std::
为前缀)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.