如何解决错误:“名称”未在此范围内声明
这段代码有什么错误?我正在尝试从构造函数传递一个值,但出现错误:
#include <iostream>
#include <string>
using std::cout;
using std::endl;
Class GettingVal{
public:
GettingVal(string z){
setName(z);
}
void setName(string x){
name = x;
}
string getName(){
return name;
}
private:
string name;
}
using namespace std;
int main()
{
GettingVal Name("Hiiiiiii");
std::cout << Name.getName();
}
错误是:
error: ‘Name’ was not declared in this scope
std::cout << Name.getName();
解决方法
对于初学者来说,有一个错字。漏了一个分号
Class GettingVal{
//...
};
^^^
标准类 std::string
在命名空间 std
中声明。
因此,您必须在类定义中使用限定名称 std::string
或使用 using 声明
using std::string;
在类定义之前。
并删除多余的 using 指令
using namespace std;
类的成员函数可以通过以下方式声明和定义
GettingVal( const std::string &z){
setName(z);
}
void setName( const std::string &x){
name = x;
}
const std::string & getName() const {
return name;
}
虽然构造函数可以定义得更简单
GettingVal( const std::string &z) : name( z ){
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。