![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++深度解析教程学习笔记
学习狄泰软件C++深度解析教程的笔记
划清界限
路漫漫其修远兮,吾将上下而求索;
展开
-
第12课 - 解析const和指针关系
一、C++的const常量的判别准则(1)只有用字面量初始化的const常量才会进入符号表(2)被volatile修饰的const常量不会进入符号表(3)使用其它变量初始化的cosnt常量仍然是只读变量(4)在编译期间不能直接确定初始值的const标识符,都被作为只读变量处理。(5)使用相同类型的常量初始化const引用变量,const引用变量只是只读变量,和常量内存地址一样。...原创 2019-12-22 20:44:52 · 158 阅读 · 0 评论 -
第11课 - 新型的类型转换
一、C方式的强制类型转换C语言的强制类型转换的代码如图1所示:图1C语言方式强制类型转换存在的问题过于粗暴;任意类型之间都可以进行转换,编译器很难判断其正确性。难于定位;在源代码中无法快速定位所有使用强制类型转换的语句。二、C++的新式类型转换C++将强制类型转换分为4种不同的类型。如下图所示;图24种强制类型转换的详细介绍如下:(1)static_...原创 2019-12-22 16:09:53 · 177 阅读 · 0 评论 -
第10课 - C++ 中的新成员
一、动态内存分配C++中通过new关键字进行动态内存申请; C++中的动态内存申请是基于类型进行的; delete关键字用于内存释放;delete用于释放变量,而delete[]用于释放数组变量,一定要记住怎么申请的就要怎么样释放。关于内存申请和释放的使用如图1所示: 图1二、new...原创 2019-12-12 21:38:36 · 121 阅读 · 0 评论 -
第9课 - 函数重载分析(下)
一、重载与指针函数重载遇上函数指针,将重载函数名赋值给函数指针时,根据重载规则挑选与函数指针参数列表一致的候选者 严格匹配候选者的函数类型与函数指针的函数类型;如图1所示的代码,根据上面两点可以判断函数指针明显指向int func(int x)这个函数。图1函数重载必然发生在同一个作用域中,编译器需要用参数列表或函数类型进行函数选择;无法直接通过函数名得到重载函数的入口地址...原创 2019-12-09 22:16:27 · 198 阅读 · 0 评论 -
第8课 - 函数重载分析(上)
一、重载同一个标识符在不同的上下文有不同的意义;如:“洗”和不同的词汇搭配后有不同的含义;如洗衣服,洗脸,洗脑,洗马桶。。。。。。“play”和不同的单词搭配后有不同的含义;如play chess,play piano,play basketball…二、C++中的函数重载用同一个函数名定义不同的函数,当函数名和不同的参数搭配时函数的含义不同 。如图1代码所示: ...原创 2019-12-08 17:28:09 · 132 阅读 · 0 评论 -
第7课 - 函数参数的扩展
一、函数参数的默认值 C++中可以在函数声明时为参数提供一个默认值,当函数调用时没有提供参数的值,则使用默认值;参数的默认值必须在函数声明中指定,若函数定义中出现参数的默认值,编译器就报错;当函数声明和定义中的参数默认值不同时,编译器也会报错。函数参数默认值的使用如图1所示:图1 函数默认参数的规则是默认必须从右向左提供;函数调用是使用了默认值,则后续参数必...原创 2019-12-08 11:46:07 · 111 阅读 · 0 评论 -
第6课 - 内联函数分析
一、常量与宏回顾C++中的const常量可以替代宏常数定义,如:const int A = 3;等价于 #define A 3那么C++中是否有解决方案替代宏代码片段呢?请看以下内容。二、内联函数的定义C++中推荐使用内联函数替代宏代码片段; C++中使用inline关键字声明内联函数; 内联函数声明时inline关键字必须和函数定义结合再一起,否则编译器会直接忽略内联请求...原创 2019-12-05 23:58:28 · 203 阅读 · 0 评论 -
第5课 - 引用的本质分析
一、引用的意义引用作为变量别名而存在,因此在一些场合可以代替指针; 引用相对于指针来说具有更好的可读性和实用性; 函数中的引用形参不需要 进行初始化。 如下图1所示,可以看用引用作为形参的函数在使用时会方便很多,因为不用像指针那样需要取变量地址。 ...原创 2019-12-02 23:29:31 · 157 阅读 · 0 评论 -
第4课 - 布尔类型和引用
一、C++中的布尔类型C++在C语言的基本类型系统之上增加了 bool bool是C++中的基本数据类型,可以定义bool类型的全局变量,可以定义bool类型的常量,可以定义bool类型的指针,可以定义bool类型的数组。等等类型。 C++中的bool可取的值只有true和false;true代表真值,编译器内部用1来表示,false代表非真值,编译器内部用0来表示。 理论上bool只占...原创 2019-11-30 23:22:23 · 154 阅读 · 0 评论 -
第3课-进化后的const分析
一、C语言中的constconst修饰的变量是只读的,本质还是变量; const修饰的局部变量在栈上分配空间; const修饰的全局变量在只读存储区分配空间; const只在编译期有用,在运行期无用; const修饰的变量不是真的常量,它只是告诉编译器该变量不能出现在赋值符号的左边;例如可以通过指针修改该变量的值。 const将具有全局生命周期的变量存储于只读存储区。const不能定...原创 2019-11-28 22:24:53 · 181 阅读 · 0 评论 -
C到C++的关系
一、C与C++的关系C与C++的关系示意图如下图所示:从图中可以看出以下几点:C++继承了所有的C特性 C++在C的基础上提供了更多的语法和特性 C++的设计目标是运行效率与开发效率的统一 C与C++不是竞争关系,而是 C++是从C进化而来的。二、C到C++的升级C++更强调语言的实用性,所有变量都可以在需要使用时再定义,而C语言中的变量都必须在作用域开始的位置定义。如...原创 2019-11-27 23:48:30 · 874 阅读 · 0 评论 -
学习C++的意义
声明:本专栏所有文章是学习狄泰软件学院的C++课程的笔记一、常见观点操作系统和驱动程序都是C写的,学好C就足够; C++在应用层用得比较多,学嵌入式没有必要学C++; 以后做驱动开发没有必要花精力去学C++; Linus大神认为C++一无是处,还学它干嘛?二、历史1、UINX操作系统诞生之初是直接用汇编语言写成的;2、随着UINX的发展,汇编语言的开发效率成为一个瓶颈;...原创 2019-11-26 23:24:30 · 766 阅读 · 0 评论