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