2017.9.19

作者: 34d71ddb735c | 来源:发表于2017-09-20 09:43 被阅读0次

    今天上午主要讲了三个知识点

    1.派生类成员的标识与访问同名覆盖原则

    当派生类与基类中有相同成员时:1若未强行指名,则通过派生类对象使用的是派生类中的同名成员。2如要通过派生类对象访问基类中被覆盖的同名成员,应使用基类名限定。

    调用同名成员见一下例子:

    class student{,,,,public:  ........  void o(){cout<<tel<<endl;}    protected:  int tel;};

    class master:public student{ ..public:. void(){cout<<①tel<<endl;②student::o();③cout<<student::tel<<endl;protected:  int tel;};

    void main(){一、master a(13312345,13012345); 二、 a.o();三、a.Student::o();

    ①调用的是派生类中的tel,②和③调用的是基类中的tel

    一和二是派生类的函数 ,三是基类的函数

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

    ①cass C: public B2, public B1, public B3{public:C(int i, int j, int k,int l):B1(i,j),B2(k,l){d=i+l}

    构造函数的调用顺序取决于继承的顺序,和初始化的顺序无关。如上先调用B2,在调用B1,最后B3.

    3.二义性

    ①在多重继承时,基类与派生类之间,或基类之间出现同名成员时,将出现访问时的二义性(不确定性)——采用虚函数或同名覆盖原则来解决。cout<<B1::b<<B2::b<<endl;

    ②当派生类从多个基类派生,而这些基类又从同一个基类派生,则在访问此共同基类中的成员时,将产生二义性——采用虚基类来解决。

    虚基类的引入用于有共同基类的场合。声明class B1:virtual public B

    注意:在第一级继承时就要将共同基类设计为虚基类。

    有虚基类的构造函数先调用虚基类再按继承顺序继续。如下:先B0在B1  B2

    class B0{};  classB1::virtual public B0{};  classB2::virtual public B0{}; classD:: public B1,public B2{public:D(int b0,int b1, int b2, int b3):B0(b0),B1(b1),B2(b2){nvd=b3;}}

    下午进行了课上老师留的作业,马马虎虎一直出错,系统一报错就懵,现在体现了基础的重要性,越来越觉得学得吃力。但是还是要努力,付出总会有好的结果。

    最近心态不好,天气也越来越冷,不爱冬天。

    你见过贪玩儿调皮又潇洒的我 所以说我幸运 而我多努力的样子你怎么会知道

    ❤️

    相关文章

      网友评论

          本文标题:2017.9.19

          本文链接:https://www.haomeiwen.com/subject/japnsxtx.html