C 拾遺 explicit關鍵字

2021-07-05 05:41:35 字數 744 閱讀 9831

問題

我們知道,c++在內建型別之間存在隱式型別轉換。而在類型別中,也存在這樣一種型別轉換:當乙個類的建構函式只有引數時,會將該型別的乙個值隱式轉換為對應的類型別。比如下面乙個例子:

#include using namespace std;

class example

};int main()

隱式型別轉換往往容易發生錯誤,為了禁止上述的隱式型別轉換可以使用explicit關鍵字。

explicit關鍵字

explicit關鍵字用來修飾類的建構函式,被該關鍵字修飾的類,不能發生上述的隱式型別轉換,只能以顯形的方式進行型別轉換。

#include using namespace std;

class example

};int main()

總結

1、explicit關鍵可以遮蔽編譯器預設的隱式型別轉換;

2、explicit關鍵字只能用於類內部的建構函式宣告,而不能於在類外部的函式宣告;

3、explicit只有在構造器只傳乙個引數的情況下有意義,當建構函式的引數超過兩個時會自動取消隱式型別轉換。

C語言拾遺 C語言關鍵字 for

摘要 除了while迴圈,c語言中還有 for 迴圈,它的使用更加靈活,完全可以取代while迴圈。for 語句的一般形式為 for 表示式1 表示式2 表示式3 它的執行過程如下圖 for 迴圈中的 表示式1 初始化條件 表示式2 迴圈條件 和 表示式3 自增或自減 都是可選項。這三個表示式,可以...

java拾遺之關鍵字while

好久沒有寫了,原因是最近在加班中,每天十二點睡六點起真是巨痛苦.本次的主題是while和do.while,因為是拾遺,所以關鍵字暫時就到這裡,像if判斷,switch多重判斷,finally final和finalize的區別,這些一些稍微基礎些,或synchronized public class...

C語言拾遺 C語言關鍵字 extern

摘要 extern是c語言中四個儲存型別關鍵字之一,可修飾全域性變數和函式。乙個工程可以包含若干個原始檔,乙個原始檔可以包含若干個函式,定義在函式外的變數被稱為全域性變數。全域性變數可以為本檔案中的其他函式所共用,它的有效範圍為從定義變數的位置開始到本原始檔結束。如果乙個不在該全域性變數有效範圍內 ...