1. 程式人生 > >c++中幾個比較不常用的關鍵字

c++中幾個比較不常用的關鍵字

我們在編寫應用程式的時候explicit關鍵字基本上是很少使用,它的作用是"禁止單引數建構函式"被用於自動型別轉換,
其中比較典型的例子就是容器型別,在這種型別的建構函式中你可以將初始長度作為引數傳遞給建構函式.
例如:
你可以宣告這樣一個建構函式
class Array
{
public:
 explicit Array(int size);
 ......
};
在這裡explicit關鍵字起著至關重要的作用,如果沒有這個關鍵字的話,這個建構函式有能力將int轉換成Array.一旦這種
情況發生,你可以給Array支派一個整數值而不會引起任何的問題,比如:
Array arr;
...
arr = 40;
此時,C++的自動型別轉換會把40轉換成擁有40個元素的Array,並且指派給arr變數,這個結果根本就不是我們想要的結果.如果
我們將建構函式宣告為explicit,上面的賦值操作就會導致編譯器報錯,使我們可以及時發現錯誤.
需要注意的是:explicit同樣也能阻止"以賦值語法進行帶有轉型操作的初始化";
例如:
Array arr(40);//正確
Array arr = 40;//錯誤