继承和派生是面向对象编程们的一个比较重要的概念,于是小柒将它记录在这里,以便于遗忘的时候可以查缺补漏 ^-^
继承:
继承是一个允许一个类从另一个类获取属性的行为,我们把被继承的类称为 基类 ,而从基类
获取属性和方法的类我们称之为 派生类。
继承的好处与作用:
要了解继承这个概念首先我们得清楚这个玩意有什么用,用了有什么好处:
1.代码重用:派生类可以继承基类的成员,这样就可以避免重复编写相同的代码、
2.扩展功能:派生类可以添加新成员或者重写基类的成员函数。实现个性化的功能。
3.提高代码的可维护性与可扩展性
4.实现多态性: 通过继承和虚函数,可以实现多态性。多态使得可以用基类的指针或者引用来操作派生类对象,根据实际对象的类型动态的调用相应的函数。
5.建立层次关系:继承可以建立清晰的类层次结构,反映现实世界中事物的分类和关系。
示例:
#include <iostream>
class Base{
public:
void print(){
std::cout<<"这是基类的方法"<<std::endl;
}
};
//此处使用public方式继承Base类
class Derived: public Base{
public:
void print() override{
std::cout<<"这是派生类的方法"<<std::endl;
}
};
int main(void){
Derived d;
d.print();
return 0;
}
输出的结果应为: 这是派生类的方法
这段示例中定义了一个基类Base与一个派生类Derived。派生类通过使用public关键字
继承了基类print()方法,并通过override关键字重写了该方法。在main函数中创建派生
类对象并调用了print()方法。
C++中继承和派生的三种方式:
1.public(公有)继承(最常用)
这个方式可以将基类完完整整的继承,也就是继承过后数据成员与方法的访问权限不变.
2.private继承
从基类继承过后,访问权限全都变为private权限
3.protected继承
从基类继承过后,会将基类的所有public访问权限改为protected访问权限
C++中派生类对基类成员的访问权限:
1.无论派生类通过何种继承方式去继承基类,只要是在派生类内部就都可以访问基类里的
public权限和protected权限的成员。
2.继承方式只影响派生类对基类成员的访问权限。
如public继承,基类成员的访问权限全部保留至子类
3派生类无法直接访问基类的private数据
C++派生类构造函数:
在派生类的构造函数中,通常需要执行以下操作:
1.调用基类的构造函数:用于初始化基类的成员
2.初始化派生类自己的成员
示例:
class Son::public Father{
//在子类的构造函数中,显式的调用基类的构造函数
Son(const char* name,int age,const char* game):Father(name,age){
this->game = game;
}
//如果没有显式的调用基类的构造函数,则会自动调用基类的默认构造函数
Son(const char*name,const char*game){
this-> game =game;
}
};
这波又学废了>w<