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,為什麼...