隱式和顯式初始化
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...