这篇博客主要是简单的介绍一下符号常量、引用以及函数重载
常量
常量包括字面常量(literal)和符号常量(const)
字面常量是不需要给出类型的,如:
20,
“Jiang”,
123u, (unsideint)
123l, (longint)
下面接一段没什么关系的小程序
#include <iostream>
using namespace std;
int main()
{
cout << sizeof(123.5) << endl; //默认的浮点数是double类型
cout << sizeof(123.5f) << endl; //123.5f是float类型
const double pi = 3.14;
cout << pi << endl;
}
现在来介绍符号常量
1. 定义方式: const + 普通变量定义,比如上面的 const double
2. 必须初始化,之前的小程序写成 const double pi就是错误的了
3. 一旦初始化就不能被修改
4. 使用建议: 用符号常量代替无参的宏定义(宏只是代替,没有类型)
下面介绍引用,这是C++中比较精华的部分
引用(reference)
引用包括 引用变量 和 引用参数 (大部分时候是参数)
引用变量
格式: 类型+&(表示定义了该类型的引用变量)
引用变量必须被初始化 (底层是用 指针 实现的)
下面通过两段代码来了解引用的作用
A、
#include <iostream>
using namespace std;
int main()
{
int i = 100;
int j = i;
j = 200;
cout << i << endl;
}
B、
#include <iostream>
using namespace std;
int main()
{
int i = 100;
int& j = i;
j = 200;
cout << i << endl;
}
比较结果可知
引用就像是起别名,有与指针类似的作用
引用参数
先看一段程序
#include <iostream>
using namespace std;
void Swap(int& i, int& j) {
int t = i;
i = j;
j = t;
}
int main()
{
int a(10), b(14);
Swap(a, b);
cout << "a= " << a << endl;
cout << "b= " << b << endl;
}
在这段程序中如果不使用 引用 或 指针
仅使用 void Swap(int i, int j) 则在输出结果中变量并不交换数据
引用参数的使用:
建议所有的函数参数都使用 引用, 少用 指针
优点:节省空间,节省时间,避免指针陷阱
缺点:确保引用参数不被修改,在前面加const
之后简单的介绍函数重载(非常简略…)
函数重载
函数重载(function loading): 是一种现象——允许存在 同名 但不同 函数签名 的多个函数
在C++中,区分不同函数的依据是 函数签名(signature)
什么是 函数签名 呢?它包括 函数名称 和 参数状况
参数状况 是指参数的 类型、个数、顺序
比如:
int Sum(int a, int b)
double Sum(double a, double b)
int Sum(int a)
int Sum(double i, int j)
int Sum(int i, double j)
在C++中它们都是 不同的 函数,可同时存在
但在C则不行
以上就是全部内容了
下一份博客将会是一个debug的实验
下一份笔记则会讲到 内联函数、默认参数、const与指针的混用以及C++中的类型转换