首页 > 其他分享 ><一>继承的基本意义

<一>继承的基本意义

时间:2022-11-27 08:44:08浏览次数:39  
标签:基本 意义 继承 private class int 派生类 public

1:继承的本质和原理
2:派生类的构造过程
3:重载,覆盖,隐藏
4:静态绑定和动态绑定
5:多态,vfptr,vftable
6:抽象类的设计原理
7:多重继承以及问题
8:虚基类 vbptr 和vbtable
9:RTTI
10:C++四种类型强转

继承的本质和原理
1:代码的复用
类和类之间的关系
组合: a part of ..... 一部分的关系
继承: a kind of ..... 一种的关系

//代码1:
class  A{

public:
     int ma;
protcted:
     int mb;
private:
     int mc;

}

class B{
public:
     int md;
     int ma;
potected:
     int me;
     int mb;
private:
     int mf;
     int mc;

}

代码2:

class  A{

public:
     int ma;
protcted:
     int mb;
private:
     int mc;

}

//B继承 A,
class B : public A{
public:
     int md;
potected:
     int me;
private:
     int mf;
}

如上图,B继承A,那么B中对A 的ma ,mb,mc 的访问方式是怎么样的?能否访问?如下

class B : public A{
public:
     int md;
     void f(){
        cout<<ma<<endl ; // ??????
     }
potected:
     int me;
private:
     int mf;
}

1:父类的私有成员,子类不管是public,protected,private 哪种方式继承,子类中都是不可见的(注意不是private)
2:外部只能访问public成员,protected和private 的成员无法直接访问
3:在继承结构中,派生类从基类可以继承过来private成员,但是派生类中是看不见的(无法直接访问)
4:protected和private的区别?在基类中定义的成员,想被派生类访问,不想被外部访问,那么在基类
把相关成员定义成protected的,如果派生类和外部都不打算访问,那么在基类中,就把想关成员定义成private私有的

看下面继承方式

class  A{

public:
     int ma;
protcted:
     int mb;
private:
     int mc;
}

//B私有 继承 A,
class B : private A{
public:
     int md;
potected:
     int me;
private:
     int mf;
}

class C : public B{
public:
    void function(){
       ma,mb ,mc md, me,mf ;的访问权限是什么?

      ma 在 A 中是共有成员 -> 到B中 变成私有成员了 -》 C 中就不可见了
      mb 在 A 中是保护成员 -> 到B中 变成了私有成员了-> c 中不可见
      mc 在 A 中是私有成员 -> 到B中 不可见  -> C中也不可见

      md 在 B 中四 共有成员 -> C中还是共有  -> main(外部)可访问
      me 在 B 中四 保护成员 -> C中还是保护(C中可访问) -> main(外部)不可访问
      mf 在 B 中四 私有成员 -> C中不可见   -> main(外部)不可见

    }
}

默认的继承方式是什么?
要看派生类是用class定义的还是struct定义的?
class定义的派生类,默认继承方式是private私有的
struct定义的派生类,默认继承方式是public的

标签:基本,意义,继承,private,class,int,派生类,public
From: https://www.cnblogs.com/erichome/p/16928943.html

相关文章

  • 【认证机制】4-Cookie-Session基本概念
    1.  Cookie1.1概述Cookie是一种在远程浏览器端存储数据并以此来跟踪和识别用户的机制。Cookie是Web服务器暂时存储在用户硬盘上的一个文本文件,当用户再次访问Web网......
  • C++:类继承知识回顾
    概述  在实际代码开发中,我们通常不会去开发最底层,而是成为“调库侠”。面对众多类库,我们需要掌握基本库的用法,比如string、valarray、iostream、any等,本白在开发capl测......
  • Java基础——继承(Extends)
    使用extends(继承)有什么好处?使用继承可以实现代码的重用,通过继承,子类可以继承父类的成员变量及成员方法,同时子类也可以定义自己的成员变量和成员方法。届时,子类将具有父类......
  • redis对key和数据库的基本操作
    redis基本数据结构操作:0.基本的常用key操作和数据库操作:keys*查看当前库所有key(匹配:keys*1)127.0.0.1:6379>setusernameqiugeOK127.0.0.1:6379>setage18O......
  • 实验5 继承和多态
    task4:pets.hpp1#pragmaonce2#include<iostream>3#include<string>4usingnamespacestd;56//定义基类,机器宠物类MachinePets7classMachinePe......
  • 实验五 继承和多态
    实验任务4#pragmaonce#include<iostream>#include<string>usingnamespacestd;classMachinePets{public:stringnickname;MachinePets(conststri......
  • 学到的一些基本cmd、dos命令与小技巧
    文件资源管理器里路径前面加cmd可以直接在当前目录打开CMD(盘符号)://切换盘符dir//查看当前目录下全部文件(查看子目录)cd(当前目录下文件夹名字)//进入子目录cd/d......
  • python基础:pycharm下载与使用、python语法之注释、PEP8规范、变量与常量、变量的基本
    目录pycharm下载与使用python语法之注释PEP8规范变量与常量变量的基本使用常量的基本使用数据类型数据类型之整型int数据类型之浮点型float数据类型之字符串str数据类型之......
  • webpack打包工具-基本配置
    /**@Author:[email protected]*@Date:2022-11-2517:42:05*@LastEditors:[email protected]*@LastEditTime:2022-11-2617......
  • 1.jwt的基本使用
    1.简介JosnWebToken:常用于前后端分离中/微信小程序/app开发中的用户认证官网地址:https://jwt.io/2.传统的用户认证流程   基于传统的token进行用户验证流程......