让编译器告诉哪些方法不具体,而不是错误'invalid new-expression of abstract class type'
Make the compiler tell which methods are not concrete instead of erroring 'invalid new-expression of abstract class type'
每次我在抽象类中添加非凝结虚拟方法时,编译器都会在所有从该抽象类派生的类中提供无用的错误invalid new-expression of abstract class type '...'
,然后我需要做git diff
要搜索我之前添加的新方法,或在GCC的错误中查找注释。(添加方法和编译之间可能存在几天差异(
我可以在C 中指定一个类必须具体的(如果不是告诉原因/缺少的方法(?
回答手头的问题:
我可以在C 中指定一个类必须具体的(如果不是告诉原因/缺失的方法(?
c 没有明确的摘要或混凝土类。这些概念在语言中是隐含的。摘要是一个或多个纯虚拟成员函数的存在(在类本身或继承中(,而没有这种功能。
这正是C 标准定义摘要类(§13.4/2(
[class.abstract]
抽象类是可以仅用其他类别的基类的类。除了从中得出的类的子对象外,不能创建抽象类的对象。类是抽象的,如果它至少具有一个纯虚拟函数。
没有关键字,例如Java的abstract
,例如在C 中。
编译器错误消息是您可以捕获错误的标准位置,例如尝试实例化仍然具有纯虚拟成员函数的类。
相关文章:
- 收到错误"invalid use of non-static data member 'stu::n' "
- C++模板错误:"invalid explicitly-specified argument for template parameter"
- SDL_CreateTextureFromSurface() "Invalid texture"错误?
- 如何'Invalid conversion'和'no match for operator'更正这些 c++ 错误
- 访问函数变体时"Invalid conversion"错误
- 出现这种错误的原因是什么"invalid use of non-static data member "
- 模板类和'invalid use of incomplete type'错误
- 错误"invalid types ... for array subscript"是什么意思?
- C++抛出错误"Invalid special open parenthesis."中的正则表达式
- 让编译器告诉哪些方法不具体,而不是错误'invalid new-expression of abstract class type'
- 使用strupr和strlwr时如何解决错误"invalid conversion of char to char*"?
- C ++设置与结构,set.find()函数使错误'invalid comparator'
- 二叉搜索树瓦尔格林德错误"Invalid read of size 8"
- 找不到错误"invalid conversion from char to const char*"的解决方案
- 一段C++代码出现错误"invalid pointer"
- 错误"invalid operands to binary expression"
- 瓦尔格林德错误"Invalid read of size 4"
- 多重继承错误'invalid use of incomplete type'
- 如何解决错误"invalid types 'int [x][const char*]' for array subscript"?
- 为什么错误"invalid conversion from 'char' to 'const char*"?