还是Qt的环境好,很多时候,不用编译直接就提示有错误。
- 报错invalid new-expression of abstract class type
有的编译器也会报错 error: allocating an object of abstract class type ‘child’。说明基类中有纯虚函数没有实现,必须在派生类实现所有纯虚函数,不使用派生类时是看不出来的。
- marked ‘override’, but does not override
1 | class Parent |
派生类的同名函数和基类的参数类型不同,而且多了const
。如果没有override
,那么是派生类新加的函数,但是添加override
,编译器认为基类有同名函数,但是没发现,所以报错。
如果是重写基类方法,建议使用override标识符,让编译器检查出可能的错误,从而避免无意的错误。