网站建设维护内容,php网站建设案例教程视频教程,珠海网站建设哪家权威,东莞外贸网站制作一、继承的概念及定义
继承可以使代码复用#xff0c;允许在保持原有类特性的基础上进行扩展。
举个例子#xff1a;就好比我现在要封装老师、学生等这些人的属性和方法#xff0c;但是这些人都有重复的属性和方法#xff0c;比如name、age、sex等等#xff0c;那么我可…一、继承的概念及定义
继承可以使代码复用允许在保持原有类特性的基础上进行扩展。
举个例子就好比我现在要封装老师、学生等这些人的属性和方法但是这些人都有重复的属性和方法比如name、age、sex等等那么我可以封装一个人的属性和方法然后我用老师、学生的类去继承人这个类他们的类里面都有了共同的属性和共用的方法不用再去每个类里面分别写了。
继承是类设计层次的复用之前接触到的复用都是函数复用。
代码解释如下
我写了一个 Person 的类然后老师、学生再去继承这个 Person 类就不用在老师和学生的里面再写相同的属性和方法。
#define _CRT_SECURE_NO_WARNINGS 1#include iostream
using namespace std;class Person
{
public:void Print(){cout name: _name endl;cout age: _age endl;}string _name person;int _age 18;
};class student : public Person
{
public:int _student_id;
};class teacher : public Person
{
public:int _job_number;
};int main()
{student s;teacher t;s._name 赵三;s._age 19;s._student_id 01;s.Print();t._name 张老师;t._age 25;t._job_number 0001;t.Print();return 0;
} 上面写的 teacher 和 student 继承了 Person 类都是用类里面的权限访问限定符中的 public那么为什么要用 public 继承 访问限定符的访问方式变化 类成员/继承方式 public继承 protected继承 private继承 基类的public成员 派生类的public成员 派生类的protected成员 派生类的private成员 基类的protected成员 派生类的protected成员 派生类的protected成员 派生类的private成员 基类的private成员 在派生类中不可见 在派生类中不可见 在派生类中不可见 总结
class 中默认继承方式是 privatestruct 中默认继承方式是 public和类中的默认权限一样
父类成员在子类的访问方式 min(成员在基类的访问限定符继承方式)
public protected private
二、基类和派生类对象赋值兼容转换。
1. 子类的对象 可以给 父类的对象/指针/引用。切片
2. 基类对象不能赋值给子类对象。
3. 基类的指针/引用可以赋值给子类的指针/引用需要C11中强转类型
#define _CRT_SECURE_NO_WARNINGS 1#include iostream
using namespace std;class Person
{
public:void Print(){cout name: _name endl;cout age: _age endl;}string _name person;int _age 18;
};class student : public Person
{
public:int _student_id;
};class teacher : public Person
{
public:int _job_number;
};void func(Person p)
{p.Print();
}int main()
{student s;teacher t;func(s);func(t);return 0;
}
画图解释一下切片如下