C++編程語言中的類型轉換分為兩種,一種為隱式轉換,而另一種則為顯式轉換。我們在這篇文章中將會為大家詳細介紹一下其中的C++隱式轉換的各種發生情況,希望能幫助大家從中獲得一些幫助。
C++隱式轉換發生在四種情況下
* 在混合類型的算術表達式中
- int ival = 3;
- double dval = 3.1415
- ival + dval; //ival 被提升為double 類型:3.0
* 用一種類型的表達式賦值
- int *pi = NULL; // NULL(0)被轉換成了int* 類型的空指針值
* 用一個表達式傳遞給一個函數調用
- extern double sqrt(double);
- sqrt(2); //2被提升為double類型: 2.0
* 從一個函數返回一個表達式
- double difference(int ival1, int ival2)
- {
- return ival1 - ival2; //返回值被提升為double 類型.
- }
C++內建類型(char,int,short,double etc.)對像之間默認含有隱式轉換
C++用戶定義類對象之間可以含有C++隱式轉換.
- void dosomething(A aObject);
- class A {
- public:
- A(int x = 0);
- }
- dosomething(20); // Ok 隱式轉換
以上就是對C++隱式轉換的相關介紹。