C++ 超详细梳理继承的概念与使用
概念
继承是一种面向对象程序设计中的重要概念,指的是一个类从另一个类获得其成员变量和成员函数的能力。
基类:具有被继承的成员函数和成员变量的类,也称为父类。
派生类:继承了基类属性的类,也称为子类。在派生类中可以定义新的成员函数和成员变量,也可以重载或覆盖基类的成员函数和成员变量。
继承方式分为公有继承、私有继承和保护继承三种。
公有继承
指的是子类可以访问父类中的公有成员和保护成员,但不能访问父类中的私有成员。
公有继承的语法如下所示:
class DerivedClass : public BaseClass {
// DerivedClass 中的成员
};
私有继承
指的是子类无法访问父类中的公有成员、保护成员和私有成员。
私有继承的语法如下所示:
class DerivedClass : private BaseClass {
// DerivedClass 中的成员
};
保护继承
指的是子类可以访问父类中的公有成员和保护成员,但不能访问父类中的私有成员。
保护继承的语法如下所示:
class DerivedClass : protected BaseClass {
// DerivedClass 中的成员
};
使用
示例 1
父类:
class Person {
protected:
string name;
int age;
public:
Person(string name, int age) {
this->name = name;
this->age = age;
}
};
子类:
class Student : public Person {
private:
int grade;
public:
Student(string name, int age, int grade) : Person(name, age) {
this->grade = grade;
}
};
在子类中,使用 public
继承了 Person
类,在 Student
类中可以直接访问 Person
类中的 name
和 age
成员变量。
示例 2
父类:
class Dog {
public:
virtual void bark() {
cout << "Dog barks" << endl;
}
};
子类:
class Labrador : public Dog {
public:
void bark() {
cout << "Labrador barks" << endl;
}
};
在子类中,通过继承 Dog
类,并在子类中重写了 bark
函数,给出了 Labrador
特有的 bark
函数实现。
总结
继承是面向对象程序设计中的重要概念之一。通过继承,可以大大提高代码的重用性、可维护性和可扩展性。同时,需要注意继承方式的选择,以及在重写父类函数时需要使用 virtual
和 override
等关键字。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++ 超详细梳理继承的概念与使用 - Python技术站