嵌入式面向对象C++开发要点-综合2

125 阅读2分钟

1 多态

  • 多态是C++面向对象三大特性之一
多态分为两类
- 静态多态: 函数重载 和 运算符重载属于静态多态,复用函数名
- 动态多态: 派生类和虚函数实现运行时多态

静态多态和动态多态区别:
- 静态多态的函数地址早绑定 - 编译阶段确定函数地址
- 动态多态的函数地址晚绑定 - 运行阶段确定函数地址

多态满足条件
-   有继承关系
-   子类重写父类中的虚函数
多态使用条件
-   父类指针或引用指向子类对象
重写:函数返回值类型 函数名 参数列表 完全一致称为重写

https://blog.csdn.net/qq_52145272/article/details/119928585

2 纯虚函数及抽象类

在多态中,通常父类中虚函数的实现是毫无意义的,主要都是调用子类重写的内容,因此可以将虚函数改为纯虚函数

-纯虚函数语法:`virtual 返回值类型 函数名 (参数列表)= 0 ;`
-当类中有了纯虚函数,这个类也称为抽象类

抽象类特点: 
-无法实例化对象
-类必须重写抽象类中的纯虚函数,否则也属于抽象类

https://blog.csdn.net/qq_52145272/article/details/119928585

3 C++新增数据类型(逻辑值,引用类型,类类型)

image.png


-- 基本数据类型

字符类型:charunsigned char
短整型:shortunsigned short
整型:intunsigned int
长整型:longunsigned long
单精度浮点型:floatunsigned float
双精度浮点型:doubleunsigned double
逻辑类型:bool

-- 构造数据类型

枚举类型:
    enumcolor
    {
        red,
        green,
        blue,
        yellow
    };
数组类型:
    int data[128];
指针类型:
    int *p;
结构体类型:
    struct student
    {
        char name[16];
        bool sexy;
    };
联合类型:
    union value{inti;intp};
引用类型:
   int value;
   int &p=value;
       
       
-- 类类型
    class Clock
    {
        private:
            int hour,minute,second;
        public:
            …
    }

C++ 引用类型

    https://www.runoob.com/w3cnote/cpp-reference-type.html
    https://blog.csdn.net/stop_and_go/article/details/51334137

C语言没有引用,只有指针
C语言是没有引用的,引用是在C++里面才存在的神级操作

    https://blog.51cto.com/u_15091053/2616914
    
C++基本语法篇    
https://blog.csdn.net/yf_roy/article/details/114213361?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-114213361-blog-98479238.pc_relevant_multi_platform_whitelistv4&spm=1001.2101.3001.4242.1&utm_relevant_index=3 

https://blog.csdn.net/qq_52145272/article/details/119841054

4 内联函数

内联函数与宏定义的区别

  • 内联函数在编译时展开,带参的宏在预编译时展开。
  • 内联函数直接嵌入到目标代码中,带参的宏是简单的做文本替换。
  • 内联函数有类型检测、语法判断等功能,宏只是替换。
https://blog.csdn.net/li94263/article/details/124767566

5 引用资料地址

https://blog.csdn.net/qq_52145272/category_11303409.html
# 系列文章目录
[【C++从入门到入土】第一篇:从C到C++](https://blog.csdn.net/qq_52145272/article/details/119841054).\
[【C++从入门到入土】第二篇:类和对象基础](https://editor.csdn.net/md/?articleId=119867842).\
[【C++从入门到入土】第三篇:类和对象提高](https://editor.csdn.net/md/?articleId=119887911).\
[【C++从入门到入土】第四篇:运算符重载](https://blog.csdn.net/qq_52145272/article/details/119850640).\
[【C++从入门到入土】第五篇:继承(爆肝画图详解)](https://editor.csdn.net/md/?articleId=119899005).

6 override描述符

  • 如果派生类在虚函数声明时使用了override描述符,那么该函数必须重载其基类中的同名函数,否则代码将无法通过编译。 image.png