C++
嵌入式定制设计工坊
在天赋面前,努力不值一提!
展开
-
C++多态
C++多态前言动态多态多态的构造多态的使用多态底层剖析解答纯虚数函数和抽象类虚析构和纯虚析构总结前言多态是C++面向对象三大特性之一多态分为两类静态多态: 函数重载 和 运算符重载属于静态多态,复用函数名动态多态: 派生类和虚函数实现运行时多态静态多态和动态多态区别:静态多态的函数地址早绑定 - 编译阶段确定函数地址动态多态的函数地址晚绑定 - 运行阶段确定函数地址静态多态比较简单,如果想要对静态多态中的函数重载了解,可以参考这篇博文:C++函数提高动态多态通过一个例子原创 2020-10-20 17:15:01 · 2836 阅读 · 0 评论 -
C++继承浅析
C++继承浅析前言1.继承的用法1.1单继承1.2多继承2.继承的优点2.1普通实现2.2 继承实现3.继承方式3.1公有继承3.2保护继承3.3私有继承4.继承中的对象模型5.继承中构造和析构顺序6.继承同名成员处理方式7.继承同名静态成员处理方式8.多继承语法9.菱形继承总结前言由于自己也是刚学了继承,写这篇博文的目的就是巩固一下自己对继承这个概念的理解,可能在以后的学习过程中会再次对继承有更深入的解析。继承是面向对象三大特性之一有些类与类之间存在特殊的关系,例如下图中:我们发现,定义这些类原创 2020-10-18 15:35:11 · 161 阅读 · 0 评论 -
C++友元
C++友元前言1.友元函数1.1全局有元函数例子解释1.2.成员有元函数例子解释2.友元类例子解释3.友元的细节与注意事项细节注意事项4.友元的优缺点友元的使用方式总结前言采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少原创 2020-10-17 16:03:29 · 211 阅读 · 0 评论 -
C++函数提高
C++函数提高1 函数默认参数2 函数占位参数3 函数重载3.1 函数重载概述3.2 函数重载注意事项1 函数默认参数在C++中,函数的形参列表中的形参是可以有默认值的。语法:返回值类型 函数名 (参数= 默认值){}示例:int func(int a, int b = 10, int c = 10) { return a + b + c;}//1. 如果某个位置参数有默认值,那么从这个位置往后,从左向右,必须都要有默认值//2. 如果函数声明有默认值,函数实现的时候就不能有默认参数i原创 2020-10-16 21:04:41 · 204 阅读 · 0 评论 -
C++This指针的用法
C++This指针的用法前言1.为什么要引入This指针2.This指针的补充3.This指针的使用3.1返回对象本身3.2对成员属性的引用4.示例5.This指针的特点5.1 This指针只能在成员函数中使用5.2 This在成员函数的开始前构造,在成员函数的结束后清除5.3 This指针存储位置5.4This指针是如何传递的6.非静态成员函数调用方式6.1 通过指针调用6.2通过对象调用7.总结前言在上一篇博文中,对C++This指针的本质详细地讲解了,这篇博文主要是讲C++This指针的用法,应用原创 2020-10-16 09:31:48 · 915 阅读 · 1 评论 -
C++This指针的本质
C++This指针的本质前言1.问题2.补充3.解答总结前言文章讲述的是C++This指针的本质,偏底层,得懂点汇编的知识,当然,如果你不懂也没关系,我会适当地补充。1.问题#include <iostream>#include <string>using namespace std;class CNullPointCall{public: static void Test1(); void Test2(); void Test原创 2020-10-15 19:53:01 · 655 阅读 · 0 评论 -
C++类的存储方式
C++类的存储方式1.初始化列表2.类对象作为类成员2.1特点2.2示例3.类的存储方式4.总结1.初始化列表C++提供了初始化列表语法,用来初始化类的属性语法:构造函数():属性1(值1),属性2(值2)... {}示例:class Person {public: ////传统方式初始化 //Person(int a, int b, int c) { // m_A = a; // m_B = b; // m_C = c; //} //初始化列表方式初始化 Person(in原创 2020-10-14 08:38:48 · 1126 阅读 · 0 评论 -
C++静态成员
静态成员前言1.静态成员变量1.1静态成员的声明1.2静态成员变量的特点1.3静态成员变量访问方式1.3.1 通过类名进行访问1.3.2 通过对象进行访问![在这里插入图片描述](https://img-blog.csdnimg.cn/20201013153815307.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2MzU5Njk3,s原创 2020-10-13 15:55:56 · 122 阅读 · 0 评论 -
C++对象的初始化和清理
对象的初始化和清理1.构造函数和析构函数2.构造函数的分类及调用3. 拷贝构造函数调用时机4.构造函数调用规则5.深拷贝与浅拷贝6.总结生活中我们买的电子产品都基本会有出厂设置,在某一天我们不用时候也会删除一些自己信息数据保证安全C++中的面向对象来源于生活,每个对象也都会有初始设置以及对象销毁前的清理数据的设置。1.构造函数和析构函数对象的初始化和清理也是两个非常重要的安全问题 一个对象或者变量没有初始状态,对其使用后果是未知 同样的使用完一个对象或变量,没有及时清理,也会造成一定的安原创 2020-10-12 18:53:19 · 311 阅读 · 1 评论 -
C++类的封装
c++类的封装概述1.封装1.1封装的意义1.2声明一个类1.3类体三要素2.属性和行为3.访问权限3.1种类3.2保护与私有的区别4.成员属性私有化成员函数形参的格式5.class和struct的区别5.1c和c++中struct的区别5.2class和struct的区别概述c++面向对象的三大特性为:封装,继承,多态。本篇博文讲述的是封装c++认为,万事万物皆对象,对象就有属性和行为。例如人就是一个对象,人的属性有年龄,身高,外貌等,人的行为有走路,说话等。具有相同性质的对象,可以抽象为类原创 2020-10-11 14:47:05 · 920 阅读 · 0 评论 -
C++引用本质
代码运行环境:Windows7 32bits+VS2017+Win32。引用是C++引入的重要机制,它使原来在C中必须用指针实现的功能有了另一种实现的选择,在书写形式上更为简洁。那么引用的本质是什么,它与指针又有什么关系呢?1.引用的底层实现方式引用被称为变量的别名,它不能脱离被引用对象独立存在,这是在高级语言层面的概念和理解,并未揭示引用的实现方式。常见错误说法是“引用“自身不是一个变量,甚至编译器可以不为引用分配空间。实际上,引用本身是一个变量,只不过这个变量的定义和使用与普通变量有显著的不同。转载 2020-10-09 21:13:47 · 384 阅读 · 1 评论