61 C 型別轉換

2021-09-26 12:26:59 字數 1816 閱讀 2009

用於類層次結構中基類(父類)和派生類(子類)之間指標或引用的轉換。

用於基本資料型別之間的轉換,如把int轉換成char,把char轉換成int。這種轉換的安全性也要開發人員來保證

靜態轉換 static_cast

使用方式  static_cast< 目標型別》(原始資料)

可以進行基礎資料型別轉換 

父與子型別轉換

沒有父子關係的自定義型別不可以轉換

class animal{};

class dog : public animal{};

class other{};

//基礎資料型別轉換

void test01()

//繼承關係指標互相轉換

void test02()

//繼承關係引用相互轉換

void test03()

//無繼承關係指標轉換

void test04()

ynamic_cast主要用於類層次間的上行轉換和下行轉換;

在類層次間進行上行轉換時,dynamic_cast和static_cast的效果是一樣的;

在進行下行轉換時,dynamic_cast具有型別檢查的功能,比static_cast更安全;

動態轉換 dynamic_cast

不可以轉換基礎資料型別

父子之間可以轉換

class animal ;

class dog : public animal

};class other

};//普通型別轉換

void test01()

//繼承關係指標

void test02()

//繼承關係引用

void test03()

//無繼承關係指標轉換

void test04()

該運算子用來修改型別的const屬性。。

注意:不能直接對非指標和非引用的變數使用const_cast操作符去直接移除它的const.

//常量指標轉換成非常量指標

void test01()

//常量引用轉換成非常量引用

void test02()

main.cpp

// 43.模板.cpp : 定義控制台應用程式的入口點。

//#define _crt_secure_no_warnings

#includeusing namespace std;

//靜態轉換

//基礎型別

void test01()

//父子之間轉換

class base{};

class child :public base{};

class other{};

void test02()

//static_cast使用 static_cast《目標型別》(原始物件)

// 動態轉換

void test03()

class base2;};

class child2 :public base2;};

class other2{};

void test04()

// 常量轉換(const_cast)

void test05()

//重新解釋轉換(reinterpret_cast)

void test06()

int main()

6 1 C語言陣列

第四章已經學過變數的基本型別,比如 char int 等等。這種型別描述的都是單個具有特定意義的資料,當我們要處理擁有同類意義但是卻包含很多個資料的時候,就可以用到陣列了,比如我們上節課那個數碼管的真值表,就是用乙個陣列來表達的。從概念上講,陣列是具有相同資料型別的有序資料的組合,一般來講,陣列定義...

6 1 C語言預處理理論

1 原始碼.c 預處理 預處理過的.i原始檔 編譯 彙編檔案.s 彙編 目標檔案.o 鏈結 elf可執行程式 2 預處理用的是預處理器,編譯用編譯器,彙編用彙編器,鏈結用鏈結器,這幾個工具再加上其它一些額外的會用到的可用工具,合起來叫編譯工具鏈。gcc就是乙個編譯工具鏈。1 編譯器本身的主要目的是編...

牛客練習賽61 C 四個選項

題目 稍微想下就應該知道,樣例是最大的方案數,40萬 並不是很大,可以dfs 蒐一波。對於答案相同的題目,其實無非就是 關係,我們可以用陣列now i 將其 比如 1,3,8是同一答案,可以用並查集的思想,然後讓其中乙個 例如 now 1 3,now 3 0,now 8 0,這樣就能實現搜的時候實現...