物聯(lián)網(wǎng)/嵌入式工程師
重磅升級:新增硬件電路設計與實戰(zhàn),讓你軟硬通吃,同級PK無敵!行業(yè)風口、政策傾斜,新晉熱門高薪不內卷!0基礎一站式就業(yè)完整路徑,搶占先發(fā)優(yōu)勢!
例如,我們可以把 int 轉成 long long。
int a = 100;
long long b = a;
由于是小類型轉大類型,所以這里使用隱式轉換就可以了。
再比如,我們可以把 long long 轉成 int。
long long a = 100;
int b = (int)a;
這里是大類型轉小類型,所以要顯式轉換。這種轉換可能會損失精度,是需要我們程序員掌控的。
同樣,類之間也可以相互轉換。類的轉換主要是在父類和子類之間的轉換。
首先,我們先來看看父類和子類之間的邏輯關系
class Staff { public: std::string name; int age; }
class Coder : public Staff { public: std::string language; };
這里有兩個類,一個類是 Staff 員工類,里面包括兩個屬性,name 和 age。Coder 程序員類繼承自員工類,所以其包含了 Staff 的屬性,除此之外,還有一個 language 屬性,表示其使用的編程語言。
我們其實可以把一個員工強行轉化成程序員,但是這就有可能出問題,就如同我們把 long long 轉成 int 就有可能出現(xiàn)問題。
int main(int argc,char **argv)
{
Coder * coder = new Coder();
Staff * staff = coder; // 隱式轉換就可以
Coder * coder = (Coder *)staff; // 必須顯式轉換
return 0;
}
請驗證,完成請求
由于請求次數(shù)過多,請先驗證,完成再次請求
打開微信掃碼自動綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報