由定义位置引发的困惑!
由定义位置不同引发的困惑!
//程序1:
vector <string> my_vs; my_vs.reserve(10);
int main()
{
...........
}
//程序2:
vector <string> my_vs;
int main()
{
my_vs.reserve(10);
...........
}
//程序3:
int main()
{
vector <string> my_vs; my_vs.reserve(10);
...........
}
以上是程序有对,有错!
请教个位为什么会这样呢?
希望高手解释这3个运行程序原理!
[解决办法]
//程序1:
vector <string> my_vs; my_vs.reserve(10);
int main()
{
...........
}
错在 "my_vs.reserve(10); "语。
在main()函数以外只能有其它类型的声明和定义语句,但不能有函数的调用语句!
//程序2:
vector <string> my_vs;
int main()
{
my_vs.reserve(10);
...........
}
这程序正确,定义了一个全局变量,一个vector容器my_vs,然后在main()主函数中调用其成员函数!
//程序3:
int main()
{
vector <string> my_vs; my_vs.reserve(10);
...........
}
这个程序最佳,在main()内定义了一个局部变量,然后调用其成员函数。之所以最佳在于其局部变量较全局变是有更好的访问控制!
由定义位置引发的困惑!解决方法
由定义位置引发的困惑! 由定义位置不同引发的困惑!//程序1:vector stringmy_vsmy_vs.reserve(10)intma
