#include <iostream>
#include <string>
using namespace std;
void var (){
string name;
}
int main(){
int var();
cout<<"hello world"<<endl;
cout<<"what is your name???"<<endl;
cin>> name;
return 0;
}
我遇到了c ++的问题: 它说名称还没有在这个范围内声明
我无法弄清楚。
我有两个课程的原因是因为我现在正在尝试,并且在我解决这个问题之后会添加类和对象。
答案 0 :(得分:1)
您声明了名称为var
两次的函数。一个在全局命名空间中。
void var(){ 字符串名称;
}
和其他在函数main
的块范围内int var();
程序中不使用这两个功能。此外,第一个函数var
有一个局部变量name
,而后者则不会在函数中使用。
在函数main中使用标识符name
CIN&GT;&GT;名;
既未在main的块范围内声明,也未在封闭的全局namespaec中声明。所以编译器发出错误。在名称为name
的第一个函数中声明的标识符var
在函数外部不可见。
因此您需要定义函数main中使用的标识符name
。例如
string name;
您的程序可以通过以下方式查找
#include <iostream>
#include <string>
std::string var()
{
std::cout << "what is your name??? ";
std::string name;
std::cin >> name;
return name;
}
int main()
{
std::cout << "hello world " << std::endl;
std::string name = var();
std::cout << "hello " << name << std::endl;
return 0;
}
答案 1 :(得分:0)
移动&#34;字符串名称;&#34;进入主要。你没有变量&#34; name&#34;在主要范围内(它是函数的局部变量&#34; var&#34;)
答案 2 :(得分:0)
我看到的问题:
您需要了解基础知识。在你有程序性的理解之前,甚至不要上课 阅读&#39;范围&#39;。您的&#39; var&#39;中的局部变量(名称)方法,不能在其他任何地方使用,因为它是在本地声明的 - 它只能在&#39; var&#39;中使用。方法
答案 3 :(得分:0)
您必须声明string name
是全局变量,或者是局部变量。
例如:
#include <iosream>
#include <string>
string name;