栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++学习day03

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++学习day03

一.运算符重载  operator:
     * 本质:运算符 operator 就是函数名
     * 单目运算符: ++,--
     *    前置: 先自增,后输出(执行)   注意:(引用方式返回类)
     *    后置: 先输出(执行),后自增   注意:(返回一个 const 修饰的局部类)
     * 双目运算符: +,-,*,/,%  和 < 、 > 、 <= 、 >= 、 == 和 =
     * 位运算符: << >>
     * 其他运算符: [] , () , ->
     * 实现方式:
     *      1.全局运算符重载
     *      2.类内运算符重载
     * 运算符重载难点: 运算符太多,实现方法不同,照成内容记忆混乱
     * 记忆重点:双目运算符,关系运算符,<<运算符,()仿函数运算符

单目运算符重载: ++(前置,后置(int占位)) , --(前置,后置(int占位))
注意:前置返回引用 , 后置返回 const 修饰的临时变量


二.继承: 
 * 作用:提高代码的复用性
 * 语法: 在定义类名后加上 : 权限(通常public) 继承的类
 *       如果多继承则使用逗号隔开
 * 构造顺序:  继承 + 成员变量 他们的构造顺序又是什么样的?
私有权限  派生类继承了 基类的所有成员,但是有部分无法使用(私有,构造,析构,友元,运算符)
但是有部分无法使用(私有,构造,析构,友元,运算符)
派生类可以 覆盖或重写 父类的成员 
默认调用父类无参构造
重点:初始化列表的时候最好调用一下父类的构造,否则默认调用父类无参构造


三.多继承: 
 * 1.非同源多继承出现同名问题?(二义性)
 *    解决方案: 通过域方式调用
 * 2.继承的构造顺序是什么顺序?
 *    答: 构造顺序: 从左往右 ->
 * 3.继承 + 成员属性 构造顺序是什么顺序?
 *    答: “至上而下,从左往右,初始化列表无关”
 *      B -> A -> My -> AB
 * 4.同宗同源多继承出现的问题?(菱形继承)
 *    造成:空间多余浪费
 *    答:使用 虚继承(virtual),减少内存占用,解决调用二义性
 *    virtual 会形成一个虚表,而类中的virtual是指向虚表的指针
 *    virtual 实质是一个指针(占 4字节)


四,多态 :
 * 定义条件:
 *    1.必须是继承关系
 *    2.父类中函数虚函数,而子类必须重写父类虚函数
 * 使用条件:
 *    1.父类指针/引用指向子类对象
 *
 * 本质: 多态实现使用的是 virtual 虚函数指针,指向一个虚函数列表
 *
 * 问题:按照逻辑来说,我们的动物类是无法实例化的。
 *    解决方案:形成抽象类,使用纯虚函数 virtual 函数() = 0;
 *             该类无法实例化,必须子类实现父类纯虚函数
 *                           才能实例化,否则它还是一个抽象类
 * 抽象类作用:提供一个框架接口,派生类根据需求制定不同的方案

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/913327.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号