qt creator 預設生成的** explicit dialog(qwidget *parent = 0)中,有這麼乙個關鍵字
explicit ,用來修飾建構函式。以前在windows下寫程式的時候,基本上沒有碰到這個關鍵字,那麼這個關鍵字是做什麼用的呢?
關鍵字 explicit 可以禁止「單引數建構函式」被用於自動型別轉換。光看這一句似乎不太容易明白,下面,舉個簡單地例子。
#include
using namespace std;
class test
void show()
private:
int m_data;};
void main(void)
編譯能夠通過,執行結果:m_data = 2。
為什麼會這樣呢?原來c++通過隱式轉換,構造了乙個臨時物件test(2),將它賦給了t(這裡呼叫了預設的建構函式,而不是過載的「=」,因為這是在物件建立的時候)。那麼,如果給建構函式加上關鍵字 explicit ,建構函式變成了 explicit test(int a),再次編譯,編譯器就會報錯。這時,就只能顯式地使用建構函式了test t = test(2) 。
**:
Qt C 中的關鍵字explicit
最近在複習qt,準備做專案了,qt creator 預設生成的 explicit dialog qwidget parent 0 中,有這麼乙個關鍵字 explicit 用來修飾建構函式。以前在windows下寫程式的時候,基本上沒有碰到這個關鍵字,那麼這個關鍵字是做什麼用的呢?關鍵字 explic...
Qt C 中的關鍵字explicit
最近在複習qt,準備做專案了,qt creator 預設生成的 explicit dialog qwidget parent 0 中,有這麼乙個關鍵字 explicit 用來修飾建構函式。以前在windows下寫程式的時候,基本上沒有碰到這個關鍵字,那麼這個關鍵字是做什麼用的呢?關鍵字 explic...
Qt C 中的關鍵字explicit
最近在複習qt,準備做專案了,qt creator 預設生成的 explicit dialog qwidget parent 0 中,有這麼乙個關鍵字 explicit 用來修飾建構函式。以前在windows下寫程式的時候,基本上沒有碰到這個關鍵字,那麼這個關鍵字是做什麼用的呢?關鍵字 explic...