简介:继承,简单来说就是把别人做好的东西,拿过来,并自己开发打造成属于自己的东西,然后去使用。
继承:
继承:从一个类派生出一个新的类,这两个类的关系就称之为继承
继承使结构更加科学
继承是面向对象程序设计的一个特性
继承分为:单继承和多继承
在派生类里面来描述继承关系
class 派生类名:继承方式 基类名1,继承方式 基类名2
继承方式:公有,私有,保护
基类的访问属性为私有,不管用什么方式继承,都可以继承,但都不可以被访问
基类的访问属性和继承方式谁更严格,就用谁
继承关系不可一循环
基类如果需要带参构造,必须通过派生类的成员初始化列表来进行传参,子对象也一样
在派生类中有子对象,构造顺序:先基类,再子对象,再自己;析构反向。
代码学习 :(有注释)
派生类的数据结构:结合代码去理解子对象,然后你才能清楚的理解继承.
//继承:从一个类派生出一个新的类,这两个类的关系就称之为继承 //继承方式:公有,私有,保护 //继承特点: //继承使结构更加科学 //继承是面向对象程序设计的一个特性 //继承分为:单继承和多继承 //在派生类里面来描述继承关系 //继承定义: class 派生类名:继承方式 基类名1,继承方式 基类名2 #include<iostream> using namespace std; class People{ int age; char name; public: People(int src){ cout << src << ":" << "People(int)基类" << endl; } ~People(){ cout << "基类析构---~People()" << endl; } void setMessage1(int a,char n){ age = a; name = n; } void getMessage1()const{ cout << age << ":" << name<<"-------------"; } }; class Student:public People{ int grade; People p;//派生类的子对象 public://如果派生类中的数据成员有子对象,那么它的构造顺序是先构造基类对象,再子对象,再派生类对象。 Student(int g):People(1),p(2){ grade = g; cout << "Student()--派生类构造" << endl; } void getMessage2()const{ getMessage1(); cout << "成绩:" << grade << endl; } ~Student(){ cout << "派生类析构---~Student()" << endl; } }; int main(){ Student s(1); s.setMessage1(18,'r'); s.getMessage1(); s.getMessage2(); return 0; }
运行结果: