八-----函數探幽

八-----函數探幽

1. 引用

1.1 引用變量的主要用途是用做函數的形參。經過將引用變量用做參數,函數將使用原始數據而不是其副本
1.2 引用聲明時必須初始化,引用更接近於 const 指針,一旦建立完畢,就會一直效忠算法

int & r = rain;
int *const p = &rain

1.3 注意使用常量引用來傳遞信息,防止函數修改數據函數

int function(const int &r);

1.4 返回引用以下:指針

structure & function(structure &r){
    //statement
    return r;
};

1.5 若是不但願函數返回值被修改,則應添加 constcode

const structure & function(structure &r){
    //statement
    return r;
};

1.6 最重要!!! 返回引用時應注意避免返回臨時變量或者局部變量的引用,不然程序會崩潰io

2. 函數重載

2.1 函數重載時,類型的引用和類型自己將被視爲同一個參數(特徵標)
2.2 函數模板能夠重載,但事實上重載過程有侷限性,很差實施function

template <typename T>
//or => template <class T>
void swap(T &a, T &b)
{
    T temp;
    temp = a;
    a = b;
    b = temb;
}

2.3 顯示具體化技術
算法稍有不一樣,可是特徵標不變,沒法使用重載,就得用此技術模板

template <> void swap<structure>(structure &, structure &)
template <> void swap(structure &, structure &)
相關文章
相關標籤/搜索