class
building
;class
animal
;class
cat:
public animal
;//int -> char
int a =97;
char c = static_cast<
char
>
(a);
cout << c << endl;
//int* -> char* 普通型別指標(無效)
// int* pint = null;
// char* pchar = static_cast(pint);
//不同類指標之間的轉化 (無效)
// building* pbuilding1 = null;
// animal* panimal1 = static_cast(pbuilding1);
// 子類指標->父類指標
cat* pcat2=null;
animal*panima2 = static_cast>
(pcat2)
;// 父類指標->子類指標
animal* panimal3 = null;
cat* pcat3 = static_cast>
(panimal3)
;// 子類引用-> 父類引用
cat cat4;
cat& ycat4 = cat4;
animal& yanimal4 = static_cast>
(ycat4)
;// 父類引用 -> 子類引用
animal animal5;
animal& yanimal5 = animal5;
cat& ycat5 = static_cast>
(yanimal5)
;
class
building
;class
animal
;class
cat:
public animal
;//不同類指標之間的轉化 (無效)
//building * pbuilding1 = null;
//animal * panimal1 = dynamic_cast(pbuilding1);
// 父類引用 -> 子類引用 (無效)
//animal animal5;
//animal& yanimal5 = animal5;
//cat& ycat5 = dynamic_cast(yanimal5);
// 父類指標->子類指標 (無效)
//animal* panimal3 = null;
//cat* pcat3 = dynamic_cast(panimal3);
// 子類引用-> 父類引用
cat cat4;
cat& ycat4 = cat4;
animal& yanimal4 = dynamic_cast>
(ycat4)
;// 子類指標->父類指標
cat* pcat2 = null;
animal*panima2 = dynamic_cast>
(pcat2)
;
// 引用
int a =10;
const
int&b= a;
//不可以通過 b 去修改 a
情況(1)
//編譯器報錯
int&c=b;
情況(2)
//這樣就可以通過c修改 a 和 b
int&c=const_cast<
int&
>
(b);
c =11;
//指標
//const -> none const
const
int* p1 = null;
int*p2 = p1;
(無效),//不可用const int* 型去初始化 int*
int*p3= const_cast<
int*
>
(p1)
;//ok
//none const-> const
int* p1 = null;
const
int*p2 = const_cast<
const
int*
>
(p1)
;
class
building
;class
animal
;class
cat:
public animal
;// 不同類指標之間的轉化
building* b1;
animal* a1;
a1 = reinterpret_cast>
(b1)
;// 函式指標之間轉化
typedef void
(func1)
(int
,int);
typedef void
(func2)
(int
,char);
func1* pfun1=null;
func2* pfun2 = reinterpret_cast>
(pfun1)
;
C 型別轉化
c 型別轉化 在理解c 型別轉換前,我們先回顧c語言中型別轉換。c風格的強制型別轉化很簡單,不管什麼型別轉換統統是 type b type a。但是c風格的型別轉換有不少的缺點,有的時候用c風格的轉換是不合適的,因為它可以在任意型別之間轉換,比如你可以把乙個指向const物件的指標轉換成指向非con...
c 型別轉化
資料型別轉換 隱式轉換 int age 10 double sum age int salary 150000 decimal money salary double speed 10.4f float minspeed float speed string num 123 int n int.pa...
C 型別轉化
const char a 必須const 因為 hello 存在常量區,為唯讀 string str hello str 1 s pass a str.c str a 1 s fail 報錯 唯讀,指標指向常量區char a a 11 int b atoi a cout string str to ...