explicit關鍵字
SHOW_SMALL_FUNCTION_BLOCK_TIPS("explicit關鍵字")
{
//作用阻止編譯器自動執行該函數
{
class explicitTest
{
public:
int a;
explicitTest() :a(NULL)
{}
explicitTest(int In_a) :a(In_a)
{}
explicitTest operator+ (const explicitTest& In)
{
return explicitTest(In.a);
}
private:
};
explicitTest t1;
explicitTest t2= t1 + 1;//正常運行,1被隱式轉換爲explicitTest
}
{
class explicitTest
{
public:
int a;
explicitTest() :a(NULL)
{}
explicit explicitTest(int In_a) :a(In_a)
{}
explicitTest operator+ (const explicitTest& In)
{
return explicitTest(In.a);
}
private:
};
explicitTest t1;
//explicitTest t2 = t1 + 1;//這裏報錯
}
}