CPP继承问题
cpp inheritance questions
除了继承之外,还有什么原因使类需要将其函数设置为虚函数?
在运行时继承基类,派生类没有实现基类的一些功能,并且第三个类调用在基类中定义为virtual的未定义方法时会发生什么?Seg错误还是会调用基类函数?
如果我不想在派生类上定义基类中的所有函数,但仍然有必要的继承,我该怎么办?
除了继承之外,类还需要有什么其他原因它的功能是虚拟的?
如果您不处理继承,那么使用virtual
函数就没有合理的用途。
在运行时继承基类时发生的情况派生类不实现基类的一些功能第三类调用定义为virtual的未定义方法在基地。Seg错误还是会调用基类函数?
如果派生类在其体中没有对virtual
函数做任何声明,则(直接)基类virtual
函数用派生类对象调用。另一方面,如果您只是在派生类中声明virtual
函数,但没有定义它,那么这是一个链接器错误。无分段故障。
如果我不想定义我的基类上的派生类,但仍然有必要的继承到位了吗?
虽然这是不清楚的,我想说,你只是不声明/定义virtual
函数(这是你不想要的)在派生类。它将使用基类virtual
函数。
如果不重新实现virtual
方法,调用者将调用基类。在我看来,这就是使用继承的意义所在。
如果不希望基类实现虚方法,可以这样声明:
class Demo {
void foo() = 0;
};
这就是所谓的抽象类。注意,您不能创建此类的实例。任何从Demo
继承的类都必须实现foo()
,否则它也将是一个抽象类,因此不能实例化。
相关文章:
- 混合组合和继承的C++问题
- 运算符继承和 cpp 核心准则 c.128 的问题
- 类继承,ENUM 与 AST 类实现的问题
- C++ 多级虚拟继承编译问题
- 如何解决此问题(基础模板和继承)
- 模板继承问题
- C++ 继承向量问题(无限循环+在其他类中使用向量的问题)
- 我是否需要在虚拟继承类的构造函数中初始化基类以解决菱形继承问题?
- 继承此C++代码有什么问题
- 一个关于继承和引用的C++问题
- C++继承和"常量"交互的问题
- 在钻石问题的求解中,为什么要虚拟地继承两次grand-parent类
- C++的抽象类继承和构造函数的问题
- C++:继承和列表函数作为类成员的问题
- SIGSEGV 因为基/派生类的继承问题
- 关于异常继承中的语法的问题
- C++继承的类设计问题
- 关于继承和覆盖的问题
- C++ 构造函数问题 // 继承的类
- 对复制构造函数的c++ OOP程序问题?继承