随笔分类 - C/C++
摘要:本文是《An introduction to GCC》的学习笔记,记录使用GCC/G++主要的实用技巧,本文讲述的知识基本上摘自本书,附带自己的一些体验。如果想详细查看本书,请戳这里。一、gcc1. 命令 $ gcc test.c -o test 将test.c 命令编译成test可执行程序。-o 命令制定输出文件名。 没有任何其他的参数即默认编译成可执行程序,输入命令 $ ./test 即可执行。gcc 实际上是分成四步:预处理、编译、汇编、链接。 $ gcc -E hello.c -o hello.i 只执行预处理 $ gcc -S hello.c -o hello....
阅读全文
摘要:1. 多态性的概述1.1 多态是指同样的消息被不同类型的对象接收时导致不同的行为。所谓消息是指对垒的成员函数的调用,不同行为是指不同的实现。1.2 多态的实现 (1) 实现角度讲多态可分为两类:编译时的多态和运行时的多态。 ① 编译时:编译过程中确定了同名操作的具体操作对象。静态绑定。 ② 运行时:程序运行时动态确定操作针对的具体对象。动态绑定。2. 运算符重载2.1 运算符重载就是对已有的运算符赋予多重含义,使同一个运算符作用域不同类型的数据导致不同的行为。2.2 运算符重载的实质是函数重载。在实现过程中,首先把制定的运算表达式转化为对运算符函数的调用,然后把运算对象转化为运算...
阅读全文
摘要:1. 类的继承与派生1.1 派生类的定义 (1) 定义规范 class 派生类名: 继承方式 基类1名, 继承方式 基类2名... { ...派生类成员声明; }; (2) 从以上形式上看可以多继承 (3) 继承方式规定了如何访问从基类继承的成员 (4) 继承的主要目的是实现代码的重用与扩充 (5) 派生类生成过程 ① 吸收基类成员 A. 继承后,派生类包含了基类中除构造和析构函数之外的所有成员。构造和析构函数需要重新定义 ② 改造基类成员 A. 通过继承方式来控制对基类成员的访问控制 B. 对基类的数据或函数成员进...
阅读全文
摘要:1. 数组1.1 数组作为函数参数 (1) 如果使用数组作为函数的参数,则实参和形参都是数组名,且类型要相同。数组名做参数时传递的是地址 (2) 使用方法: void rowSum(int a[][4], int n, int m); // 不能写成 int a[][];也不能写成int **a;1.2 对象数组 (1) 声明语句 ① 类名 数组名[常量表达式]; (2) 例子: Location a[2] = {Location(1,2), Location(3,4)}; Location a[2] = {Location(1,2)};//此时,先初始化...
阅读全文
摘要:1. 标识符的作用域与可见性 1.1 作用域 标识符的作用域包括:函数原型作用域、局部作用域、类作用域、命名空间作用域 (1) 函数原型作用域:函数的参与的作用域就是从函数的开始到结束 (2) 局部作用域:void fun(int a){ int b = a; cin>>b; if(b>0) { int c; //c的作用域 b的作用域 a的作用域 ... } } (3) 类作用域 类X中有成员m,m的类作用域的三种...
阅读全文
摘要:1. 面向对象程序设计的特点
1.1 抽象
1.2 封装
1.3 继承
1.4 多态
(1) 分为:强制多态、重载多态、类型参数化多态、包含多态
(2) 强制多态:类型转换
重载多态:
类型参数化多态和包含多态属于一般多态性,是真正的多态。C++中采取虚函数实现包含多态。虚函数是多态的精华。模板是参数化多态的工具,分为函数 模板和类模板
2. 类和对象
2.1 这个理解的比较清楚,就以一个例子说明下用法吧
阅读全文
摘要:1. 随机函数的使用
2. 函数的参数传递
3. 内联函数
4. 带默认参数的形参
阅读全文
摘要:1. sizeof
2. I/O流的输出格式
3. while 与 do-while
3.1 里面的条件true 或 false 与程序流程的关系
4. for 语句的执行顺序
5. switch 语句
6. typeof声明
7. enum枚举
阅读全文