顯式 隱式型別轉換 初始化

2021-09-23 23:37:48 字數 1613 閱讀 3013

隱式和顯式初始化

a) c++隱式初始化

int ival(1024);

string hello("hello rookie");

b) c++顯式初始化

int val = 1024

string hello = "hello rookie"

*這裡的「=」語法是拷貝建構函式,而不是賦值運算。

因為乙個新物件被定義一定要有乙個建構函式而不是乙個賦值操作

string hello;

hello = 「hello rookie」; <-這裡hello已經被定義了,才是賦值操作。

隱式型別轉換:

一般情況下,資料的型別的轉換通常是有編譯系統自動進行的,不需要人工干預,所以被稱為隱式型別轉換。

c++隱式轉換發生在四種情況下:

a) 在混合型別的算數表示式中

int val = 3;

double dval = 3.1415;

ival + dval ;//ival被提公升為double型別:3.0

b) 用一種型別的表示式賦值

int *p1 = null;//null(0)被轉換成了int *型別的空指標值。
c) 用乙個表示式傳遞給乙個函式呼叫

extern double sqrt(double);

sqrt(2);//2被提公升為double型別:2.0

d) 從乙個函式返回乙個表示式

double difference(int val1,int val2)

c++使用者定義類物件之間可以含有隱式轉換

void dosomething (a aobject);

class a

dosomething(20);//隱式轉換

顯示型別轉換:

當程式要求一定要將某一型別的資料轉換為另外一種型別,則可以利用強制型別轉換運算子轉換,這種強制轉換過程稱為顯式轉換。

顯式型別轉換格式為:

(強制型別名)表示式

用於強行將「表示式」的值轉換成「型別名」所表示的資料型別。例如,(int)4.2的結果就是4;強制型別轉換的目的是使表示式的值的資料型別發生改變,從而使不同型別資料之間的運算能夠進行下去。

自動型別轉換:

也稱為顯式型別轉換,是指不需要書寫**,由系統自動完成型別轉換。c++內建型別(char ,int ,short,double etc)物件之間預設含有隱式轉換。

轉換規則:

從儲存範圍小的型別到儲存範圍大的型別

具體規則:

short(char)->int->long->float->double

也就是說int型別的變數可以自動轉換為long型別,

int b = 10;long l = b;

C 隱式和顯式 初始化,型別轉換

1.隱式和顯式初始化 1.1 c 隱式初始化 int ival 1024 string hello hello world.1.2 c 顯式初始化 int ival 1024 string hello hello world.ps 注意這裡 語法是拷貝建構函式而不是賦值運算 因為乙個新物件被定義一定...

C 中顯式和隱式初始化和型別轉換

有乙個類的建構函式為 a int i m i i 1.1 c 顯式初始化 內建型別 int ival 1024 string hello hello world.自定義型別的顯式初始化 a abc 200 顯式初始化,直接呼叫建構函式 a a a 1 直接呼叫建構函式,沒有臨時物件,作用域結束時析構...

顯式型別轉換和隱式型別轉換

typeof六種資料型別 number string boolean undefined object function var num 123 console.log typeof num number var num1 true console.log typeof num1 string va...