已采納回答 / onemoo
你的Coordinate類沒有定義默認構造函數,且因為你已經定義了一個構造函數,故編譯器也不會為你自動生成一個默認構造函數。可是在main函數中,第49行處你定義了一個Coordinate數組,這會對每一個元素進行初始化,由于沒有默認構造函數,所以沒有匹配的調用,編譯失敗。再有,假設你提供了默認構造函數,那么第51和53行就錯誤了,因為不能對已經初始化的對象再次調用構造函數。
2015-08-08
最贊回答 / qq_渴望六維空間_0
樓上說的是正確的,這個和之前講的const是一致的,比如:const int A;int *p=&A;這個就是錯誤的,因為A已經設置為常量,而指針p是可以讀寫的,用一個權限大的指針p去指向一個權限小的A,是不可以的,會有風險。coordinate的對象被const修飾,變成了常對象,那么指向它的指針this也必須變成常指針,否則就有改變常對象值得風險,因此成員函數內容無論是否改變了常對象的值,都要變成常成員函數,這也就是為什么getX()和getY()要變成常成員函數getX() const和ge...
2015-08-07