文章介绍:本文介绍的知识点是关于c++继承的知识点。内容如下:
1:继承的概念及定义
2:基类与派生类的赋值兼容转化(切割/切片)
3:继承的作用域
4:派生类中的4大默认成员函数语法及使用
5:继承,友元,静态成员
6:菱形继承与与菱形虚拟继承的对象模型
1:继承
是什么:首先继承属于面向对象三大特性之一,将不同类中相同数据或方法提取出来到一个公共类(父类)中,通过继承能够在原有父类的基础上增加一些其它的方法与变量,增强了代码的复用度。
class Person
{
public:
Person(const char* name = "张三", int age = 10)
:_name(name)
, _age(age)
{
}
private:
string _name;
int _age;
};
class Student :public Person
{
public:
private:
int stu_id;
};
class Teacher :public Person
{
public:
private:
int Job_id;
};
在这个场景中我们很容易发现继承的有点:首先我们知道不管是老师还是学生都有名字,年龄这些相同的成员变量,所以我们可以将他们相同的部分提取到一个公共类中,后续我们只需要通过继承就能将这些变量全部拿到,提高了代码的复用性。我们就可以这样简单的理解继承。
我们来认识上面这些代码其中一些语法:
关于访问方式与继承方式
访问方式与继承方式都各有三种: private/protected/public
我们先来认识这几个关键字
private:在类外不能被访问。protected:只有在父类和子类能够被访问。public:类外可以被访问
其中:protected的增加是为了让基类中的成员能够被父类访问。
通过不同的排列组合一共有9种组合访问方式与继承方式
结论:1:基类中的private成员在派生类中是不能被访问的但是还是会被继承下来。
2:基类的其他成员在派生类中的访问方式: ==MIN(基类的访问方式,继承方式),public>protected>private
3:class的默认继承方式为