#include <iostream>
using namespace std;
struct testarray{
int element;
public:
testarray(int a):element(a){}
};
class myarray
{
public:
testarray i;
public:
myarray(testarray a) : i(a){ }
} ;
int main()
{
myarray objArray[3] = {1,2,3};
return 0;
}
上述代碼在Visual C++ 2005 Express Edition IDE中編譯得很好。但我想要的是防止編譯器隱式類型化對象類型。如何防止編譯器對類構造函數參數進行隱式類型轉換?
更一般地說,總是使用'explicit'將可以用單個參數調用的構造函數(考慮默認值)寫入。並仔細評估,如果可以採取'顯式'出來之前刪除它,它可能會節省一些打字,但它會引入錯誤:) – 2009-10-31 16:15:01