随笔分类 - C++深度解析
摘要:第13课 - 进阶面向对象(上) 1. 面向对象的基本概念 1.1 面向对象的意义 (1)将日常生活中习惯的思维方式引入到程序设计中 (2)将用户的需求中的概念直观的映射到解决方案中(面向过程需要将需求进行转换,不能直观的表达) (3)以模块为中心构建可复用的软件系统 (4)提高软件产品的可维护性和
阅读全文
摘要:第12课 - 经典问题解析一 1. 关于const的疑问 const 什么时候为只读变量? 什么时候为常量? 1.1 const常量的判别标准 (1)只有用字面量初始化的 const 常量才会进入符号表,如:const int i = 0; // 工作在程序的编译时期,可以确认初始值为0 (2)使用
阅读全文
摘要:第10课 - C++中的新成员 1. 动态内存分配 1.1 C++ 中的动态内存分配 (1)C++ 中通过 new 关键字进行动态内存申请 (2)C++ 中的动态内存申请是基于类型进行的 (3)delete 关键字用于内存释放 1 Type *pointer = new Type; 2 // ...
阅读全文
摘要:第9课 - 函数重载分析(下) 1. 重载与指针 1.1 下面的函数指针将保存哪个函数的地址? 1.2 函数重载遇上函数指针 将重载函数名赋值给函数指针时: (1)根据重载规则挑选与函数指针参数列表一致的候选者 (2)严格匹配候选者的函数类型与函数指针的函数类型 (这里不仅需要匹配参数类型,还需要匹
阅读全文
摘要:第8课 - 函数重载分析(上) 0. 自然语言中的上下文 你知道下面词汇中 "洗" 字的含义吗? 结论: ① 能和“洗”字搭配的词汇有很多 ② “洗”字和不同的词汇搭配有不同的含义 问题:C++ 作为一门高级语言,它应该向自然语言发展靠拢,更符合人的思维习惯。能否在其中添加重载的特性? 自然语言中:
阅读全文
摘要:第7课 - 函数参数的扩展 1. 函数参数的默认值 (1)C++ 中可以在函数声明时为参数提供一个默认值 (注意是在声明中提供,不能在函数定义中提供) (2)当函数调用时没有提供参数的值,则使用默认值 1 #include <stdio.h> 2 3 //默认值只能在函数声明时提供 4 int mu
阅读全文
摘要:第6课 - 内联函数分析 0. 回顾C中的带参函数、宏和内联函数 原地展开,没有调用开销; 并且在预处理阶段完成,不占用编译时间。 函数代码被装入符号表中,在使用时进行替换; 没有调用开销,效率高,会进行参数类型检查 需要传参、栈变量的开辟和销毁 压栈、跳转、返回开销; 不进行类型检查,多次宏替换会
阅读全文
摘要:第5课 - 引用的本质分析 1. 引用的意义 (1)引用作为变量别名而存在,因此在一些场合可以代替指针 (2)引用相对于指针来说具有更好的可读性和实用性 注意: ① 一般在声明引用时,必须对其进行初始化 ② 函数中的引用形参不需要进行初始化!!!初始化发生在函数调用的时候。 2. 特殊的引用:con
阅读全文
摘要:第4课 - 布尔类型和引用 1. 布尔类型 (1)C++ 在 C 语言的基本类型系统之上增加了 bool 类型,其可取的值只有 true(编译器内部用1表示) 和 false(编译器内部用0表示) (2)理论上 bool 只占用一个字节 (3)C++ 编译器会将非0值转换true(即1),0值转换为
阅读全文
摘要:第3课 - 进化后的const分析 1. C 语言中的 const (1)const 修饰的变量具有只读属性,本质还是变量,只是告诉编译器该变量不能出现在赋值符号的左边。 (2)const 修饰的局部变量在栈上分配空间,修饰的全局变量在只读存储区分配空间。 (3)const 只在编译期间有用,在运行
阅读全文
摘要:第2课 - C到C++的升级 1. C 与 C++ 的关系 (1)C++ 继承了所有的 C 特性 (2)C++ 在 C 的基础上提供了更多的语法和特性 (3)C++ 的设计目标是运行效率和与开发效率的统一 C→C++ 在很多方面得到了升级,为什么 C++ 只有两个加号呢? 因为 C++ 中的两个加号
阅读全文
摘要:第1课 - 学习 C++ 的意义 1. 对 C++ 的一些误解 ××× (1)操作系统和驱动都是用 C 写的,学好 C 就够了。 (驱动和操作系统开发属于极少部分的人) (2)C++ 在应用层用的多,学嵌入式的没必要学。 (嵌入式系统应用程序开发也需要 C++) (3)以后就做驱动开发了,没精力也没
阅读全文

浙公网安备 33010602011771号