C 中explicit的作用

2021-07-24 05:13:10 字數 629 閱讀 3778

explicit作用

在c++中,explicit關鍵字用來修飾類的建構函式,被修飾的建構函式的類,不能發生相應的隱式型別轉換,只能以顯示的方式進行型別轉換。

explicit使用注意事項:

1.explicit 關鍵字只能用於類內部的建構函式宣告上;

2.explicit 關鍵字作用於單個引數的建構函式;

3.在c++中,explicit關鍵字用來修飾類的建構函式,被修飾的建構函式的類,不能發生相應的隱式型別轉換。

例子:

class circle  

circle(int x, int y = 0) : x(x), y(y) {}

circle(const circle& c) : r(c.r), x(c.x), y(c.y) {}

private:

double r;

int x;

int y;

};//未加explicit時的隱式型別轉換:

int main()

//加了explicit關鍵字後,可防止以上隱式型別轉換發生

int main()

c 中 explicit的作用

c 提供了 關鍵字explicit,可以阻止不應該允許的經過 轉換建構函式 進行的隱式轉換的發生。宣告為explicit的 建構函式 不能在隱式轉換中使用。c 中,乙個引數的建構函式 或者除了第乙個引數外其餘引數都有預設值的多參建構函式 承擔了兩個角色。1 是個構造器 2 是個預設且隱含的型別轉換操...

C 中explicit的作用

explicit用來防止建構函式定義中的隱式轉換 隱式轉換 可以用單個實參來呼叫的建構函式定義了從形參型別到該類型別的乙個隱式轉換。class things intcompareto const things other std string m name int height int weight...

C 中explicit關鍵字的作用

explicit用來防止由建構函式定義的隱式轉換。要明白它的作用,首先要了解隱式轉換 可以用單個實參來呼叫的建構函式定義了從形參型別到該類型別的乙個隱式轉換。例如 class things intcompareto const things other std string m name inthe...