
C++在头函数中定义了一个全局变量,在主函数中已经include“xx.h”,但是我不能用那个全局变量 为什么?
提示那个变量未声明,这是头函数的,externMatpoint_X;这是主函数的cout<<point_X;(主函数中变量绝对没打错)...
提示那个变量未声明,这是头函数的,extern Mat point_X; 这是主函数的cout<<point_X;(主函数中变量绝对没打错)
展开
2个回答
展开全部
extern Mat point_X;这一句只是一个声明语句,并没有真正定义 对象 point_X。
你需要在任意一个 源文件cpp文件中定义这个对象,比如这样: Mat point_X;,去掉前面的 extern即是定义了。
头文件里加声明是正确的做法,如你的代码。而定义一般是 放在源文件里的。源文件才会编译成一个个中间文件。头文件不会。头文件一般就是声明,然后可能被多个源文件包含。
你需要在任意一个 源文件cpp文件中定义这个对象,比如这样: Mat point_X;,去掉前面的 extern即是定义了。
头文件里加声明是正确的做法,如你的代码。而定义一般是 放在源文件里的。源文件才会编译成一个个中间文件。头文件不会。头文件一般就是声明,然后可能被多个源文件包含。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询