1,const_cast()操作符;
//目標型別只能是指標or引用
#include using namespace std;
int main()
2 static_cast()操作符;
#include using namespace std;
class parent
void show()
};class child : public parent
void print()
};int main()
3 dynmic_cast操作符;
//dynmic_cast操作符會在執行期間對可疑的轉換型別操作進行安全檢查,而static_cast不會進行安全檢查
#include using namespace std;
class parent
};class child : public parent
};int main()
4 reinterpret_cast操作符;
#include using namespace std;
int main()
總結:
(1)const_cast()操作符;
1,取消const屬性。
2,可以用常量初始化常引用,但不能用常量初始化普通引用。
(2)static_cast()操作符;
1,可用於基本型別間轉換,例如 int = float,但不能用於基本型別指標間轉換。
2,可用於有繼承關係的類之間物件間(父類物件和子類物件)的轉換 和 指標之間(父類指標和子類指標)的轉換。
(3)dynmic_cast()操作符;
用於有繼承關係的基類與派生類指標之間的轉換,前提是必須有多型存在。
1,向上轉型 基類指標物件 = 派生類指標物件 ;
2,向下轉型 派生類指標物件 = 基類指標物件;
(4)reinterpret_cast()操作符;
1,可用於普通型別之間的轉換(但不安全);
2,可用於整數和指標之間的轉換。
C 中 指標和引用
相信很多c 初學者都搞不清指標和引用是個什麼玩意,這裡我也不寫其定義。主要解釋 和 的作用。相信看完以後一定會有收穫的。首先,看起幾個常見的例子 int i 520 int r i int p p i p i int r2 p以上是一些c 中常見的寫法.其中 和 既能作為表示式的運算子,也能作為申明...
C 指標型別間強制轉換
深入理解指標型別間的轉換 c 中指標的強制轉換 強制型別轉換 int int 和 int 的區別 記憶體中的位址 位址的本質就是一串0和1的機器 記憶體中的位址沒有明確資料型別,但位址值有型別,以32位編譯器為例,記憶體中的位址是乙個32位的整數。無論什麼型別的指標變數,在記憶體中本質上都是一樣的,...
C 中指標與引用區別
1.都是位址的概念 指標指向一塊記憶體,它的值為該塊記憶體的位址。引用是某塊記憶體的別名。1.指標是實體,引用只是乙個別名。2.使用時,引用需要解引用,指標不需要。解引用指獲得該記憶體位址處儲存的值 3.引用從一而終,指標可多變。給引用賦值修改的是該引用所關聯的物件的值,而並不是使引用與另乙個物件關...