C++知識點(diǎn)

模板

函數(shù)模板、類模板
簡單實(shí)例如下。

#include <iostream>
using namespace std;
template <typename T> class ZRT;

template <typename T>
int compare(const T& a, const T& b){
    if(a < b)return 1;
    else return 0;
}

template <typename T>
class ZRT{
public:
    ZRT(){};
    bool compare(const T& data1, const T& data2){
        return data1 < data2;
    }
};
int main()
{
    double a = 5.0; double b = 1.5;
    ZRT<double> result;
    cout << result.compare(a,b);

}

C++的虛函數(shù)

原理:1.每一個對象多一個虛函數(shù)指針。2.每一個類多一張?zhí)摵瘮?shù)表。
作用:基類指針調(diào)用子類函數(shù)。

#include <iostream>
#include <vector>
using namespace std;

class animal{
public:
    virtual void printAnimal(){
        using std::cout;
        using std::endl;
        cout << "Animal" << endl;
    }
};
class cat: public animal{
public:
    void printAnimal(){
        using std::cout;
        using std::endl;
        cout << "cat" << endl;
    }
};
int main()
{
    animal *p = new cat;
    p->printAnimal();   
}

virtual關(guān)鍵字

純虛函數(shù):= 0

C++的特殊循環(huán)語句

range-based
具有迭代器

for(const auto &x : v)
// const可選 auto可改具體類型 &可判定是否引用

C++的函數(shù)調(diào)用

· C++的函數(shù)調(diào)用,使用括號 () 。

性質(zhì):調(diào)用函數(shù)時(shí),使用括號 (),只關(guān)心 function()是不是一個函數(shù)。

應(yīng)用:重載一個類的 ()運(yùn)算符,可通過傳遞對象來傳遞函數(shù)。

lambda函數(shù)(匿名函數(shù))

Lambda函數(shù)結(jié)構(gòu)

· []對外部引用的參數(shù),&,=。具有覆蓋性質(zhì)。默認(rèn)為=,且名字相同。(使用a1=a則可以修改名字)

· ()傳入?yún)?shù)。

· mutable:對捕獲參數(shù)而言,值為const。mutable允許其中修改值。

· throw() 本質(zhì)上是一種君子協(xié)定:代表我在這個函數(shù)中不拋出任何異常,如果有拋出異常,則會被編譯器捕捉到。(經(jīng)測試,沒有用處)

· 返回:(可選)由auto自動判斷。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容