前几天写Qt的时候遇到一个问题,就是写了多个类,类的函数需要用到同一个变量,而且不是int,double这种的,而是vector,list,这些标准的结构。这可难到我了。
一开始想的是在文件头定义全局变量,但是程序报错,所以肯定是行不通的。
网上找了一些c++定义全局变量的方法,比如extern或者static之类的,试了,也没有用。另外c++在声明的时候有先后顺序,所以一定要把全局的放在所有引用的上面。
后来我也看到一些博客说vector这类不能定义为全局变量,和编译有关,有点复杂。对于我这种需要两三个用到同一个vector的还是比较少见。
最后我想了下,既然是都要用,而且设定全局如此麻烦,而且不安全,不如就当作参数传入函数不就行了?
果然可以。这样唯一的缺点就是速度可能会比全局的慢一些,但是至少是一种思路。
第一篇博文,打算就先水一水,哈哈。