這樣寫不可以嘛?奇怪了
#include?<iostream> using?namespace?std; class?Coordinate { ???? public: ?Coordinate(int?x1,int?y1) ?{ ????????m_iX=x1; ????????m_iY=y1; ?} ?//?打印坐標的函數 ?void?printInfo()?? ?{ ?????cout<<"("<<m_iX<<","<<m_iY<<")"<<endl; ?} public: ?int?m_iX; ?int?m_iY; }; int?main(void) { ?//定義對象數組 ???? ????Coordinate?coorArr[2]; ????coorArr[0].Coordinate(1,2); ????coorArr[1].Coordinate(3,4); ?//遍歷數組,打印對象信息 ?for(int?i?=?0;?i?<?2;?i++) ?{ ??coorArr[i].printInfo(); ?}? ?return?0; }
2015-08-08
你的Coordinate類沒有定義默認構造函數,且因為你已經定義了一個構造函數,故編譯器也不會為你自動生成一個默認構造函數。
可是在main函數中,第49行處你定義了一個Coordinate數組,這會對每一個元素進行初始化,由于沒有默認構造函數,所以沒有匹配的調用,編譯失敗。
再有,假設你提供了默認構造函數,那么第51和53行就錯誤了,因為不能對已經初始化的對象再次調用構造函數。
2015-10-20
構造函數是不可以被用戶進行調用的,你這里的錯誤是不是顯示調用了構造函數