看下面代碼
class Test{
}; class Test2{public:Test2(Test *t){}};int main(){Test test();//把定義一個對象 “Test test;” 寫成 “Test test();”函數聲明了!Test2 test2(&test);//return 0;}
?
Dev-cpp的提示信息:
no matching? function for call to `Test2::Test2(Test (*)())'
VC的提示信息:
不能將參數 1 從“Test(__cdecl *)(void)”轉換為“Test *”?.
---
“Test(__cdecl *)(void)”是函數指針類型
“Test *”是對象的指針
?
所以在 重復的設計構造函數時候,要注意對象的定義格式,不要多寫了“()”。