目录
9.1将某项操作作为一个函数,主函数只是调用即可,这样方便读程序
1.宏定义使用
宏定义常量:#define m=5;
2.转义符
\n 换行 \t制表 \r回车 \f换页
他们的使用:
- 单独使用,在单引号中
- 在字符串常量中使用,在双引号中
3.函数调用形式
语句式: print_char('*',15);
表达式: c=2*max(a,b);
函数参考: m=max(a,max(b,c));
3.1其中的实参形式:
- 常量
- 变量
- 表达式
- 另一个函数
3.2实参到形参的数据传递
- 值传递:函数调用后,形参值释放,实参值不变
- 地址传递
- 引用传递:一个函数最多有一个返回值,当需要其输出多个结果时,采用引用机制
void swap(int &m,int &n);
函数调用时,实参必须是变量名,形参与实参对应同一单元,对形参的操作就是对实参的操作。
3.3 形参的默认值
void fun(int i,int j=2,int k=3);
注意:无默认值的形参要放在有默认值的形参左边。
3.4 宏定义函数
#define uint unsigned int
这个就将uint 等价于 unsigned int
3.5 一维数组作为形参
一维数组作为形参,不需要说明数组大小。为了使得函数知道数组元素的个数,再传递一个表示元素个数的形参。
int fun(int b[],int m,int n);
4.C++的类型(待验证)
类型 | 字节数 | 范围 |
short int | 2 | -32768~32767 |
int | 4 | -2^32~-2^32-1 |
long int | 4 | -2^32~-2^32-1 |
char | 1 | -128~127 |
bool | 1 | 1,0 |
float | 4 | -3.4*10^-38~3.4*10^38 |
double | 8 | -1.8*10^-308~1.8*10^-308 |
5.动态存储分配
效果:程序运行期间,由用户输入信息决定分配空间的大小
数据类型 指针变量=new 数据类型(初值)
delete 指针
int *p=new int;
delete p;
6.动态数组
元素个数是变量时,数组长度随变量值可以变化。
数据类型 指针变量=new 数据类型[元素个数]
delete []指针
cin>>n;
int *p=new int[n];
delete []p;
7.类的使用
7.1 类的成员函数定义
- 类内定义——>同普通函数
- 类外定义——>类内声明,类外定义
返回类型 类名::成员函数(形参)
{
}
内联函数:关键字为 inline
7.2 构造函数
作用为初始化,使得在声明对象的时候,也可以同时对它的成员变量赋值。
类名(形参)
{
}
定义时:
类名 m1("1111");
程序中,将类看作int等类型名来操作,定义构造函数时,同时定义带参数和不带参数的构造函数
7.3 拷贝构造函数
类的构造函数的形参中,使用该类基其他对象或者其他类对象。
作用:用一个已存在类对象去初始化同类新对象(整体赋值)
类名1(类名2 &对象名)
{
}
使用例子:
mobile m1("111111");
mobile m2(m1);
7.4 类的组合——复杂对象分解为简单对象的组合
组合类构造函数:
类名::类名(形参):内嵌对象1(形参),内嵌对象2(形参),……
{
}
构造函数调用:先内嵌对象后组合类
析构函数调用:先组合类后内嵌对象
7.5 派生类
在原有类的基础上产生新类,作用:代码重用与扩充
class 派生类:[继承修饰符]基类1,……
{
};
过程:
- 吸收基类成员;
- 改造基类成员(改访问控制;同名覆盖)
- 添加新成员
7.6 继承
- 公有继承,继承公有和保护,不能继承私有;
- 私有继承,同上;
- 保护继承,同上;
7.7 设置常量的作用——便于修改
8 指针
8.1 this指针
当前类的隐式对象指针
9.程序编写规范
9.1将某项操作作为一个函数,主函数只是调用即可,这样方便读程序
9.2 模块化设计思想
- .h文件一般是变量的定义,函数的定义
- .cpp文件一般是函数或者主函数的定义
c++中。
- 把类和成员变量的定义放入一个.h文件
- 成员函数和静态成定义放入一个.cpp文件
- 主函数放在另一个.cpp文件中
注意:主函数调用在另一个.cpp文件中的函数,需要包含.h文件