温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++中继承的特点是什么

发布时间:2021-09-09 10:27:34 来源:亿速云 阅读:195 作者:chen 栏目:大数据

这篇文章主要介绍“C++中继承的特点是什么”,在日常操作中,相信很多人在C++中继承的特点是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++中继承的特点是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

##继承特点
子类拥有父类的所有属性和方法(除了构造函数和析构函数)。
子类可以拥有父类没有的属性和方法。

继承语法

class 派生类名:继承方式 基类名1, 继承方式 基类名2,...,继承方式 基类名n{    派生类成员声明;};

继承的访问控制

public继承:父类成员在子类中保持原有的访问级别(子类可以访问public和protected)。
private继承:父类成员在子类中变为private成员(虽然此时父类的成员在子类中体现为private修饰,但是父类的public和protected是允许访问的,因为是继承后改为private)。
protected继承
父类中的public成员会变为protected级别。
父类中的protected成员依然为protected级别。
父类中的private成员依然为private级别。
注意:父类中的private成员依然存在于子类中,但是却无法访问到。不论何种方式继承父类,子类都无法直接使用父类中的private成员。

继承中的构造函数

派生类名::派生类名(参数总表):基类名1(参数表1),基类名(参数名2)....基类名n(参数名n),内嵌子对象1(参数表1),内嵌子对象2(参数表2)....内嵌子对象n(参数表n){    派生类新增成员的初始化语句;}

  构造函数是为了初始类中的数据,对于派生类而言,不会继承基类的构造函数,因此为了完成派生类数据的初始化需要在派生类中自己定义构造函数,派生类的构造函数除了需要初始化派生类中新增的数据成员 还需要初始化基类中的数据成员

class student{  public:    void display()    {        cout<<"ID: "<<s_ID<<" name : "<<name <<" age: "<<age <<endl;    }    student(int s_id,string s_name,int age)    {        s_ID = s_id;        name = s_name;        age = age;    }private:    int s_ID;    string name;    int age;};class midStudent :public student{public:    midStudent(int s_ID,string s_name,int age,int score):student(s_ID,s_name,age)    {        collegeScrore = score;    }    void  getCollegeScore()    {        cout<<"score :"<<collegeScrore<<endl;    } private:    int collegeScrore;};int main(int argc, char *argv[]){    midStudent stu(1,"baxiang",18,100);    stu.display();    stu.getCollegeScore();    return 0;}

覆写基类同名函数

  派生类中重新定义基类的同名函数的方法,成为对基类的函数的覆写,覆写后基类的同名函数在派生类中被隐藏,定义派生类对象调用该函数,调用的是自身的函数,基类的同名函数不会被调用。

  1. 若想调用基类的同名函数,可在函数前面加上基类的名称和作用域符号“::”

##多重继承构造函数
派生类的构造函数后面的参数包含了各干基类的构造函数需要的所有参数,多重继承派生类的构造函数需要调用该派生类的所有构造函数

多重继承调用顺序

  1. 调用基类构造函数,按照派生类中定义的先后顺序,依次调用

  1. 调用对象成员的构造函数

  1. 调用派生类的构造函数

到此,关于“C++中继承的特点是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++
AI