C++常见错误

来源:互联网 发布:五轴联动加工中心编程 编辑:程序博客网 时间:2024/05/16 12:45

1 redefinition of class && previous definition of class

   表示重复定义了类,一般说来是因为在你进行该类定义的头文件中没有使用#ifndef,#define和#endif来进行保护.如果你确定你在该头文件中使用了宏进行保护,那么检查一下#endif忘写了么还是#ifndef和#define后的宏名字完全一样么?

   总之,就是你重复定义了那个类?至于为什么,自己好好想想自己的代码结构吧?名字空间冲突的问题?自己重复定义的问题?...

 

2 expected class name before '{' token

  通常是你使用类继承的过程中出现的.检查一下你包含了父类型的声明头文件了么?如果包含了,那么你和父类型之间是否有循环依赖么?

 

3 undefined type in this scope.编译器未检测到该类型的定义,检查一下该类型是否是本名字空间中定义的?如果不是,那么使用using表示使用那个  名字空间或者在该类型前面加上该名字空间了么?在文件拷贝过程中,尤其要注意更改文件的名字空间的声明.

 

4 undefined reference to 'foo_function'

   这通常是编译器在链接对象文件或库时发生的错误,表示链接时没有找到该函数的对象文件或库.那么想一想,你确定你指定了该函数定义的文件编译生成的对象文件或库了么?如果你确定指定了,那么你包含的头文件声明和库文件或者对象文件中的函数定义版本一致么,会不会时因为二者对该函数的声明和定义接口变化导致不一致了呢?

   如果你还是很确定.那么,你用g++编译器的时候把对库的指定选项放在了源文件后面了么?也就是:g++ -o foo foo.cpp -L** -lbar,而不要把指定库的选项放在源文件foo.cpp前面.

 
转:http://blog.csdn.net/kankanli/article/details/5169391
原创粉丝点击