經過測試發現,帶參數的構造函數不可以用來聲明數組,如下列的代碼就是錯誤的。
class Coordinate {
public:
//Coordinate() {
//}
Coordinate(int x, int y):m_iX(x),m_iY(y)
{
}
Coordinate(const Coordinate & coor) {
this->m_iX = coor.m_iX;
this->m_iY = coor.m_iY;
}
void PrintCoor()
{
cout << m_iX << ',' << m_iY << endl;
}
void PrintCoor()const
{
cout << m_iX << ',' << m_iY << endl;
}
private:
int m_iX;
int m_iY;
};
如果沒有預設構造函數,這裡将不可以用
Rect arrRect[10];
來聲明一個對象數組。必須要有預設構造函數,因為不可以在執行個體對象數組時為每個元素傳入參數,來執行帶參構造函數。