最贊回答 / Asprin_J
和返回類型有關(guān), return *this,返回類型是Array,是值傳遞,返回后會先copy出一個臨時對象,而return this是返回Array*類型,返回值本質(zhì)上也是值傳遞,生成一個臨時指針對象,但是這個對象內(nèi)容是指向Array的地址。
2015-08-13
已采納回答 / onemoo
你的Coordinate類沒有定義默認構(gòu)造函數(shù),且因為你已經(jīng)定義了一個構(gòu)造函數(shù),故編譯器也不會為你自動生成一個默認構(gòu)造函數(shù)。可是在main函數(shù)中,第49行處你定義了一個Coordinate數(shù)組,這會對每一個元素進行初始化,由于沒有默認構(gòu)造函數(shù),所以沒有匹配的調(diào)用,編譯失敗。再有,假設你提供了默認構(gòu)造函數(shù),那么第51和53行就錯誤了,因為不能對已經(jīng)初始化的對象再次調(diào)用構(gòu)造函數(shù)。
2015-08-08
最贊回答 / qq_渴望六維空間_0
樓上說的是正確的,這個和之前講的const是一致的,比如:const int A;int *p=&A;這個就是錯誤的,因為A已經(jīng)設置為常量,而指針p是可以讀寫的,用一個權(quán)限大的指針p去指向一個權(quán)限小的A,是不可以的,會有風險。coordinate的對象被const修飾,變成了常對象,那么指向它的指針this也必須變成常指針,否則就有改變常對象值得風險,因此成員函數(shù)內(nèi)容無論是否改變了常對象的值,都要變成常成員函數(shù),這也就是為什么getX()和getY()要變成常成員函數(shù)getX() const和ge...
2015-08-07
最贊回答 / onemoo
構(gòu)造函數(shù)的函數(shù)名都一樣,它們當然是重載的。不過可能會有些特殊之處,比如在調(diào)用只有一個參數(shù)的構(gòu)造函數(shù)時,在傳參中可能會發(fā)生隱式類型轉(zhuǎn)換。
2015-08-03
最贊回答 / 朵小妖兒
我的理解是:普通對象具有讀寫權(quán)限,而常成員函數(shù)具有只讀權(quán)限,就像最后一個例子的pcoor->printInfo();一樣的意思。
2015-08-01