1.cpp
const int point=50; //point 里放的是特征点的数量
fun1(){...}
2.h
extern const int point;
3.cpp
#include"2.h"
fun2(){ float a[point]={0,} }//在cpp里定义一个point维的数组
4.h
#include"2.h"
class ObsFun
{ ObsFun();
.....
}
ObsFun()
{ for (int i=0;i<point;i++);//以特征点的数量为循环次数
}
error:3.cpp:应输入常量表达式
4.h:“point”:未声明的标识符
我该怎么修改才能满足我的使用情况呢?
这个问题问了很多次了
感谢回答,但是我的方法就是“在某一个.cpp中定义,在头文件中声明,在使用的地方,包含头文件”,就是这样做的为什么会出错呢?
有回答说“在c++中const有限定变量作用域的作用,它限制变量只在本编译单元内可以使用”,我将1.cpp中的point定义改成“extern const int point=50;”,还是会提醒相同的error。
~是不是和我使用的情况比较特殊有关??一处是用在在cpp文件中数组的定义,另一处用在头文件中类函数中。
1.cpp
const int point=50; //point 里放的是特征点的数量
fun1(){...}
2.h
extern const int point;
这不是将point变量定义了两次吗
和常量没有关系。但是你只能定义一次,别的地方是声明,不能重复定义。