C++经典编译错误&警告收集
编程语言C++,使用编译器devc++
Levee_
ayswith
展开
-
当遇到可能是编译顺序导致的错误时:
看看耦合的(也即一个类用到了另一个类)类的.h文件是否#include了别的类的.h文件;若有,试着把这个#include挪到.cpp里去;原创 2023-10-09 01:19:26 · 124 阅读 · 1 评论 -
关于signal SIGSEGV, Segmentation fault
访问野指针问题在运行时不报错,而是卡住并结束,且return value 3221225477;只有在调试时,运行到访问野指针的语句时会报错signal SIGSEGV, Segmentation fault;原因:指针定义之后却没有初始化,会指向一个随机的无法访问的地址(但不是NULL);解决办法:让野指针指向一个具体的变量;原创 2023-06-29 18:53:33 · 1509 阅读 · 1 评论 -
关于[Warning] deprecated conversion from string constant to ‘char *‘警告
编译会报警告[Warning] deprecated conversion from string constant to 'char *',显示从字符串到char *为弃用的转换;这是由于:"apple"这样的const string是存储在const内存区里的,不允许修改,而我们用char *类型的指针指向了它,这样的修改会使程序出错;也因此,用char s[]指向"apple"就不会出错了;修改:把char *s改为char s[]即可;因此我们可以写 a=b,而不可以写 b=a;原创 2023-06-29 17:32:12 · 3017 阅读 · 1 评论 -
undefined reference to ‘xxx‘
在C++中,当你声明一个类的静态成员变量时,它只是一个声明,而不是定义。因此,你需要在类外部提供一个定义;vtable是c++中虚函数表的意思,出现该编译错误是在类定义中定义了纯虚函数而没有实现;解决办法:为每个虚函数提供至少一个实现;原创 2023-05-17 13:36:05 · 333 阅读 · 0 评论 -
经典编译错误&警告收集
这是调用成员函数时忘记加括号。原创 2023-05-15 20:37:25 · 1270 阅读 · 0 评论