Advertisement

C语言面向对象编程(第2章):深入解析继承机制

阅读量:

C 语言面向对象编程(一) 中提及继承这一概念,此处将进一步展开说明。

从派生类与基类之间的关系角度出发(为便于与 C 语言进行对比,此处仅讨论公有继承):

  • 派生类内部可以直接调用基类中定义的 public 和 protected 类型的成员(涵盖变量及函数)
  • 当使用派生类的对象时,其对基类成员的访问方式与访问自身成员无异
  • 若基类中的非虚函数被派生类所覆盖,则可在派生类中通过基类名称结合域作用符(::)来调用该函数
  • 在使用基类指针调用虚函数时,系统将依据指针实际指向的对象来决定调用哪一个函数实现;若该对象未对该虚函数进行重载,则会沿着继承链向上查找,直至找到对应的实现

上述特性是否能够在 C 语言中完全实现?我认为可以模拟出类似的功能,但具体操作方式上存在差异。接下来我们将逐一探讨这些问题,在此之前先了解继承的基本实现方式。

首先来看 C 语言中通过“包含”机制模拟继承功能的一个基础代码结构:

复制代码
 struct base{

    
     int a;
    
 };
    
  
    
 struct derived{
    
     struct base parent;
    
     int b;
    
 };
    
  
    
 struct derived_2{
    

全部评论 (0)

还没有任何评论哟~