21xrx.com
2025-04-09 03:29:36 Wednesday
文章检索 我的文章 写文章
C++ 类继承的实现方法
2023-06-26 22:59:25 深夜i     14     0
继承 C++ 虚函数 多态 基类

C++ 是一种面向对象编程语言,其中类继承是一种重要的特性。通过继承,一个类可以从另一个类获得它的属性和方法。在 C++ 中,类继承有以下几种实现方法。

1.公有继承

公有继承是最常用的一种继承方式。在公有继承中,子类继承了父类的公有成员,而私有成员和保护成员则不能被继承。可以使用冒号(:)向子类指定继承哪个父类。

示例代码:

class Parent {
public:
  void foo()
    cout << "Parent foo" << endl;
  
};
class Child : public Parent {
public:
  void bar()
    cout << "Child bar" << endl;
  
};
int main() {
  Child c;
  c.foo(); // 可以调用Parent的公有成员函数
  c.bar();
  
  return 0;
}

2.私有继承

私有继承中,子类继承了父类的公有和保护成员,但这些成员在子类中都变成了私有成员。私有成员不会被继承。使用私有继承时必须注意访问权限的问题。

示例代码:

class Parent {
public:
  void foo()
    cout << "Parent foo" << endl;
  
  void bar()
    cout << "Parent bar" << endl;
  
};
class Child : private Parent {
public:
  void foobar() {
    foo(); // 可以调用Parent的公有成员函数
    bar(); // 可以调用Parent的 保护成员函数
  }
};
int main() {
  Child c;
  c.foobar(); // 可以调用foo和bar
  c.foo(); // 错误:foo已经成为了Child的私有成员
  
  return 0;
}

3.保护继承

保护继承中,子类继承了父类的公有和保护成员,但这些成员在子类中都变成了保护成员。访问权限和私有继承相同。

示例代码:

class Parent {
public:
  void foo()
    cout << "Parent foo" << endl;
  
  void bar()
    cout << "Parent bar" << endl;
  
};
class Child : protected Parent {
public:
  void foobar() {
    foo(); // 可以调用Parent的公有成员函数
    bar(); // 可以调用Parent的 保护成员函数
  }
};
int main() {
  Child c;
  c.foobar(); // 可以调用foo和bar
  c.foo(); // 错误:foo已经成为了Child的保护成员
  
  return 0;
}

4.多重继承

多重继承是 C++ 中另一个重要的概念。它允许一个类从多个基类派生。在多重继承中,可以使用逗号分隔多个基类。

示例代码:

class Parent1 {
public:
  void foo()
    cout << "Parent1 foo" << endl;
  
};
class Parent2 {
public:
  void bar()
    cout << "Parent2 bar" << endl;
  
};
class Child : public Parent1, public Parent2 {
public:
  void foobar() {
    foo(); // 可以访问Parent1中的foo()
    bar(); // 可以访问Parent2中的bar()
  }
};
int main() {
  Child c;
  c.foobar(); // 可以调用foo和bar
  
  return 0;
}

以上就是 C++ 类继承的实现方法。通过合理的继承方式,可以提高代码的重用性和可维护性。在设计类时需要好好考虑继承的使用,遵循面向对象编程的原则。

  
  

评论区

请求出错了