第14课 - 进阶面向对象(下) 1. 类之间的基本关系 (1)继承 ① 从已存在类细分出来的类和原类之间具有继承关系(is-a) ② 继承的类(子类)拥有原类(父类)的所有属性和行为 (2)组合 ① 一些类的存在必须依赖于其它的类,这种关系叫组合 ② 组合的类在某一个局部上由其它的类组成 2. 类
第1课 - make 和 makefile 1. make make 是一个应用程序,位于 /usr/bin/make 目录下,make 有如下的功能: (1)解析源程序之间的依赖关系 (2)根据依赖关系自动维护编译工作 (3)执行宿主操作系统中的各种命令 2. makefile makefile
第2课 - 初识makefile的结构 1. makefile 的意义 (1)makefile 用于定义源文件之间的依赖关系 (在阅读开源软件源码时,可通过Makefile掌握源码中各个文件之间的关系) (2)makefile 说明如何编译各个源文件并生成可执行程序 2. makefile 的规则
第12课 - 经典问题解析一 1. 关于const的疑问 const 什么时候为只读变量? 什么时候为常量? 1.1 const常量的判别标准 (1)只有用字面量初始化的 const 常量才会进入符号表,如:const int i = 0; // 工作在程序的编译时期,可以确认初始值为0 (2)使用
第18课 - 对象的构造(中) 1. 构造函数详解 函数头的三大元素:int func(para1, para2, ...) 返回值类型、函数名、参数。构造函数的返回值类型(无)、函数名(类名)都已确定,那参数能不能由程序员自定义呢? 1.1 带有参数的构造函数 (1)构造函数可以根据需要定义参数,
第2课 - 搭建Lua开发环境 1. Lua 的优点 (1)Lua 使用标准的 ANSI C 进行开发,可以无缝集成到宿主程序,且几乎支持所有平台。 (2)Lua 是开源且免费的软件,以源码的方式直接发布。开源软件的发布方式有多种形式。 2. 获取 Lua 源码 可以访问 Lua 的官方网站 htt
第3课 - makefile伪目标的引入 1. makefile 中的目标究竟是什么? (1)默认情况下,make 认为目标对应着一个文件 ==> 目标即文件名 (2)make 首先会检测目标对应的文件是否存在,若不存在则执行依赖和命令。若存在则会比较目标文件和依赖文件的新旧关系,决定是否执行命令。
第17课 - 对象的构造(上) 0. 问题 对象中成员变量的初始值是什么? 下面的类定义中,成员变量 i 和 j 的初始值是什么? 对象定义在 全局空间、栈上、堆上,具有不同的属性。 1 #include <stdio.h> 2 3 class Test 4 { 5 private: 6 int i
第6课 - 变量的高级主题(上) 1. makefile中变量的替换 1.1 变量值的普通替换 (1)使用指定字符(串)替换变量值中的后缀字符(串) (2)语法格式: $(var:a=b) 或 ${var:a=b} 替换表达式中不能有任何的空格 make 中支持使用 ${} 对变量进行取值 替换表达
第7课 - 变量的高级主题(下) 1. makefile中的环境变量(全局变量) (1)makefile中使用系统环境变量 makefile中可以直接使用系统中的环境变量(系统环境变量的本质就是全局的键值对) 如果 makefile 中定义了同名变量,那么环境变量将会被覆盖 运行 make 时指定
第5课 - 预定义变量的使用 1. makefile中的预定义变量 (1)自动变量 $@ @^ @< $@ @^ @< (2)特殊变量 $(MAKE) , $(MAKECMDGOALS) , $(MAKEFILE_LIST) $(MAKE_VERSION) , $(CURDIR) , $(.VARI
第4课 - 变量和不同的赋值方式 1. makefile中的变量 (1)makefile 中支持程序设计语言中变量的概念 (2)makefile 中的变量只代表文本数据(字符串) (3)makefile 中的命名规则 — 变量名可以包含字符 , 数字 , 下划线 — 不能包含 ":" , "#" ,
第19课 - 对象的构造(下) 1. 特殊的构造函数 (1)无参构造函数 当类中没有定义构造函数时,编译器默认提供一个无参构造函数,并且其函数体为空。 (2)拷贝构造函数 当类中没有定义拷贝构造函数时,编译器默认提供一个拷贝构造函数,简单的进行成员变量的值复制。 1 #include <stdio.
第8课 - 条件判断语句 1. makefile中的条件判断语句 (1)makefile 中支持条件判断语句 — 可以根据条件的值来决定 make 的执行 — 可以比较 两个不同变量 或者 变量和常量值 方法 ifxxx (arg1,arg2) # for true else # for false
第20课 - 初始化列表的使用 0. 问题 类中是否可以定义 const 成员? 下面的类定义是否合法?如果合法,ci 的值是什么,存储在哪里? 1 #include <stdio.h> 2 3 class Test 4 { 5 private: 6 const int ci; 7 public:
第3课 - 启航Lua之路 1. Lua中的变量 (1)变量:全局变量和局部变量 — Lua中支持全局变量和局部变量的概念 全局变量:直接定义变量名,并复制 全局变量:直接定义变量名,并复制 全局变量:直接定义变量名,并复制 a = 1; -- 用 ; 结束当前语句(可选) 局部变量:使用 loca
第9课 - 函数定义及调用 1. makefile中的函数 (1)make 解释器提供了一系列的函数供 makefile 调用 (预定义函数) (2)在 makefile 中支持自定义函数实现,并调用执行 (自定义函数) (3)通过 define 关键字实现自定义函数 2. 在 makefile 中
第6课 - 内联函数分析 0. 回顾C中的带参函数、宏和内联函数 原地展开,没有调用开销; 并且在预处理阶段完成,不占用编译时间。 函数代码被装入符号表中,在使用时进行替换; 没有调用开销,效率高,会进行参数类型检查 需要传参、栈变量的开辟和销毁 压栈、跳转、返回开销; 不进行类型检查,多次宏替换会
第21课 - 对象的构造顺序 0. 问题 C++ 中的类可以定义多个对象,那么对象构造的顺序是怎样的? 1. 对象的构造顺序 1.1 局部对象的构造顺序 当程序执行流到达对象的定义语句时进行构造 1.2 堆对象的构造顺序 当程序执行流到达 new 语句时创建对象 使用 new 创建对象将自动触发构造
GDB调试工具 Mascot:射水鱼 GDB官网: https://.gnu.org/software/gdb/ GDB适用的编程语言: Ada / C / C++ / objective-c / Pascal 等。 GDB的工作方式: 本地调试和远程调试。 目前release的最新版本为8.
第10课 - 变量与函数的综合示例 1. 实战需求 (1)自动生成 target 文件夹存放可执行文件 (2)自动生成 objs 文件夹存放编译生成的目标文件(*.o) (3)支持调试版本的编译选项 (4)考虑代码的扩展性 ——> 使用变量 2. 工具原料 — $(wildcard _pattern
第27课 - 二阶构造模式 1. 关于构造函数 (1)类的构造函数用于对象的初始化 (2)构造函数与类同名并且没有返回值 (3)构造函数在对象定义时自动被调用 2. 关于构造函数的一些疑问? (1)如何判断构造函数的执行结果? ==> 在类中添加一个标志(bool),放在构造函数的末尾(判断函数体是
第1课 - 学习 C++ 的意义 1. 对 C++ 的一些误解 ××× (1)操作系统和驱动都是用 C 写的,学好 C 就够了。 (驱动和操作系统开发属于极少部分的人) (2)C++ 在应用层用的多,学嵌入式的没必要学。 (嵌入式系统应用程序开发也需要 C++) (3)以后就做驱动开发了,没精力也没
第5课 - 引用的本质分析 1. 引用的意义 (1)引用作为变量别名而存在,因此在一些场合可以代替指针 (2)引用相对于指针来说具有更好的可读性和实用性 注意: ① 一般在声明引用时,必须对其进行初始化 ② 函数中的引用形参不需要进行初始化!!!初始化发生在函数调用的时候。 2. 特殊的引用:con
第4课 - 布尔类型和引用 1. 布尔类型 (1)C++ 在 C 语言的基本类型系统之上增加了 bool 类型,其可取的值只有 true(编译器内部用1表示) 和 false(编译器内部用0表示) (2)理论上 bool 只占用一个字节 (3)C++ 编译器会将非0值转换true(即1),0值转换为
第25课 - 类的静态成员变量 1. 成员变量的回顾 (1)通过对象名能够访问 public 成员变量 (2)每个对象的成员变量都是专属的,成员变量不能在对象之间共享 这么看,如果多个对象想操作同一个数据,从目前来看只能使用全局变量(每个对象都可以操作全局作用域的全局变量),但是这样存在安全隐患,在
第3课 - 进化后的const分析 1. C 语言中的 const (1)const 修饰的变量具有只读属性,本质还是变量,只是告诉编译器该变量不能出现在赋值符号的左边。 (2)const 修饰的局部变量在栈上分配空间,修饰的全局变量在只读存储区分配空间。 (3)const 只在编译期间有用,在运行
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号