最近的工程中出现一个错误,error: expected constructor, destructor, or type conversion before '.' token ,纠结了很久,终于找到原因,还是自己c++基本功不好,犯了低级错误,此处写下来,给自己警示!!!
C++中,全局阈只能声明、初始化变量; 不能用于赋值、运算、调用函数等!!!
关于初始化和赋值:(感谢monsion的提问)
对于初始化变量的解释:
程序中的变量可以声明多次,但是只能定义一次。
只有当声明也是定义时,声明才有初始化式,因为只有定义才分配存储空间,初始化必须要有存储空间来初始化。
如果声明有初始化式,那么它可以被当做定义。
对于赋值的理解:赋值是一种运算,赋值的等号是从右到左的运算符,对于全局变量,不能用于运算。
不知道表达清楚了没有,欢迎继续交流!
我的程序定义了一些全局变量
如果我在定义的bool 型变量aiml_load = aimlLoad() 后面加上一句aiml_load = true;那么句会报标题这样的错误,去掉后编译通过。这个例子不一定恰当,但是原理是这样的。后悔没有在当时遇到这个错误的时候详细的记录下犯错的例子,现在只能先这样举一个生硬的例子了。