C 型別轉換 自學筆記 可能有誤

2021-10-01 19:11:10 字數 1047 閱讀 3420

c風格的型別轉換      type b = (type)a;

c++型別轉換提供了4中型別轉換操作符來對應不同場合的應用

(1)static_cast                靜態型別轉換

(2)reinterpreter_cast     重新解釋型別

(3)dynamic_cast           命名上理解是動態型別轉換。如子類和父類之間的多型型別轉換

(4)const_cast               字面上理解就是去除const屬性

(1)一般c語言能隱式轉換的它都可以轉換成功,編譯時c++編譯器會做型別檢查,轉換不過去的會進行報錯,基本型別能轉換,但是不能轉換指標型別。

(1)若不同型別之間,進行強制型別轉換,用它對型別進行重新解釋

static_cast 和reinterpreter_cast 把c語言的強制型別轉換都包括了

#include using namespace std;

int main()

(1) 用在多型中,父類到子類的向下轉型

(2) 在執行時進行型別識別

#include using namespace std;

class father

;class son1 :public father

void print() };

class son2 :public father

void print() };

void playobj(father * obj)

son2 * s2 = dynamic_cast(obj);

if (s2 != null) }

int main()

主要的應用場景就是去除變數的唯讀屬性

//const char *p的const修飾 讓p指向的記憶體空間 變成唯讀屬性

void printfbuff(const char *p)

int main()

C 引用 自學筆記可能有錯

引用就是某一變數 目標 的乙個別名,對引用的操作與對變數直接操作完全一樣。型別識別符號 引用名 目標變數名 char m n 引用變數 和 被引用的變數公用乙個空間,也就是說改變m或n m和n都會改變,在宣告引用的時候必須要初始化。int main int main float fn2 float ...

單鏈表自我實踐(可能有誤)

單鏈表自我實踐 可能有不恰當之處 include struct node 該測試例題的索引號從 1開始 下列函式均未對 head是否為 null進行判斷處理,當傳入的 head為 null會報錯 void addlast node head,const int n 注意 head是指標的指標 tem...

閉包的理解(可能有誤,大神看到如果有問題請糾正)

對於閉包的理解,主要有兩個作用 1.外部方法應用內部方法的變數,2.快取資料 function a returnb var c a c 1 c 2 其中的c是乙個window全域性方法,它能呼叫方法a裡面的b方法,注意a是返回了乙個內部函式b,如果不這樣,那c就不能呼叫b了 a中有乙個變數i,為什麼...