避免在c++的直接派生类中定义纯虚函数
Avoiding Defining a pure virtual function in c++ in immediate derived class?
必须在c++的直接派生类中强制定义纯虚函数吗?或者我们可以避免它,以便我们只能在具体类中定义它?这是如何实现的?
没有人强迫您实现纯virtual
函数,所以您不必这样做。你的类只是抽象的。在派生类中,只需省略声明或将其重新声明为virtual pure。
struct Base
{
virtual void foo() = 0;
};
//this is OK, X is abstract
struct X : Base
{
};
//this is also OK, redundant, and Y is abstract
struct Y : Base
{
virtual void foo() = 0;
};
在开始创建该类的实际对象之前,绝对不需要在该类中定义任何纯虚函数。
抽象类是用来作为其他类的基类的。抽象类层次结构可以任意深,这意味着您不需要在直接子类中定义纯虚方法。如果没有实现虚纯方法,则派生类是抽象的。如果要实例化该方法,必须在某些派生类中实现该方法。
相关文章:
- 在命名空间中定义函数还是限定函数
- 为什么在定义函数之前先声明它
- 使用用户定义函数的字符串反转
- 用户定义函数中的指针和输入
- 这个c++代码是如何在没有定义函数的情况下运行的
- 具有外部"c"和程序集的未定义函数
- 已定义函数时出现 G++ "未定义的引用"错误
- 将自定义函数传递到基抽象类中以延迟执行
- C++使用 rand 定义函数语法
- Arduino:在 loop() 和自定义函数中运行相同的代码时出现问题
- 将具有固定签名的自定义函数名称注入 CRTP
- 使用定义函数模板别名
- 是否可以使用单个定义定义函数的常量和常规版本?(使用模板,自动,decltype等)
- 在内联程序集中定义函数和从 C++ 调用时出现问题
- 在 Metal 着色器代码中,如何定义函数的 in/out 参数变量?
- 声明和定义函数静态会产生"undefined reference to function_name()"
- 朋友定义函数的名称空间是什么
- 介子 对用户定义函数的未定义引用
- 如何使用 "using" 关键字定义函数原型/签名
- 在 C 结构中定义C++函数