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++中的類型轉換

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