1. 程式人生 > >C++——explicit

C++——explicit

explicit建構函式是用來防止隱式轉換的。請看下面的程式碼:

class Test1
{
public:
    Test1(int n)
    {
        num=n;
    }//普通建構函式
private:
    int num;
};
class Test2
{
public:
    explicit Test2(int n)
    {
        num=n;
    }//explicit(顯式)建構函式
private:
    int num;
};
int main()
{
    Test1 t1=12;//隱式呼叫其建構函式,成功
    Test2 t2=12
;//編譯錯誤,不能隱式呼叫其建構函式 Test2 t2(12);//顯式呼叫成功 return 0; }