c++多个cpp要使用一个变量(vector、list之类的),该怎么办?
2017-11-05 00:25
337 查看
前几天写Qt的时候遇到一个问题,就是写了多个类,类的函数需要用到同一个变量,而且不是int,double这种的,而是vector,list,这些标准的结构。这可难到我了。
一开始想的是在文件头定义全局变量,但是程序报错,所以肯定是行不通的。
网上找了一些c++定义全局变量的方法,比如extern或者static之类的,试了,也没有用。另外c++在声明的时候有先后顺序,所以一定要把全局的放在所有引用的上面。
后来我也看到一些博客说vector这类不能定义为全局变量,和编译有关,有点复杂。对于我这种需要两三个用到同一个vector的还是比较少见。
最后我想了下,既然是都要用,而且设定全局如此麻烦,而且不安全,不如就当作参数传入函数不就行了?
果然可以。这样唯一的缺点就是速度可能会比全局的慢一些,但是至少是一种思路。
第一篇博文,打算就先水一水,哈哈。
一开始想的是在文件头定义全局变量,但是程序报错,所以肯定是行不通的。
网上找了一些c++定义全局变量的方法,比如extern或者static之类的,试了,也没有用。另外c++在声明的时候有先后顺序,所以一定要把全局的放在所有引用的上面。
后来我也看到一些博客说vector这类不能定义为全局变量,和编译有关,有点复杂。对于我这种需要两三个用到同一个vector的还是比较少见。
最后我想了下,既然是都要用,而且设定全局如此麻烦,而且不安全,不如就当作参数传入函数不就行了?
果然可以。这样唯一的缺点就是速度可能会比全局的慢一些,但是至少是一种思路。
第一篇博文,打算就先水一水,哈哈。
相关文章推荐
- C++基础之两个头文件使用同一个变量会重复定义怎么办
- c++中怎么判断一个string类型的字符串变量是否为数字?
- C++使用临界区来控制多线程访问同一个变量
- C++学习小记(使用定义在其他.cpp文件中的变量或函数)
- C++使用临界区(互斥体)来控制多线程访问同一个变量(经典例子)
- C++ 标准库 vector list map使用方法
- 在不同cpp中使用同一个变量
- List,Vector之类使用时的提醒问题
- c++ 一个类使用另外一个类的变量或方法
- c++中怎么判断一个string类型的字符串变量是否为数字?
- C++ STL容器的学习使用(vector、queue、list、set、map)
- C++使用出问题,菜鸟一个,不知怎么解决,郁闷
- C++技术问题总结-第7篇 map、vector、list、deque各自的使用场合
- C++中怎么使用全局变量?
- C++中的vector的使用的一个例子
- C++中防止STL中迭代器失效——map/set等关联容器——vector/list/deque等序列容器—如何防止迭代器失效—即erase()的使用
- (vs2008链接错误LK200x:xxx在yyy.obj中已定义或xxx在yyy中以被引用):一个全局的变量想在多个cpp文件中使用
- C++中防止STL中迭代器失效__map/set等关联容器vector/list/deque等序列容器_如何防止迭代器失效_即erase()的使用
- 一个c++程序里面可以有多少个.cpp文件,如果可以有多个,那么是怎么连接的,怎么运行的。
- C++存储数据结构List、CArray、Vector和Map使用分析