C++学习笔记(二)

这篇博客主要是简单的介绍一下符号常量、引用以及函数重载

常量

常量包括字面常量(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++中的类型转换

(内容大多源自老师讲课)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章