//1
Point &element(int index) {
......................
return points[index];
}
//2
Point element(int index) {
......................
return points[index];
}
??假設(shè)兩個類Point和ArrayOfPoints,points是指向ArrayOfPoints類對象中動態(tài)生成的Point類對象數(shù)組的指針(在ArrayOfPoints類中定義構(gòu)造函數(shù)函數(shù)體:points = new Point[size];
)袭艺,那么points[index]就代表該數(shù)組當(dāng)中的某個對象元素朵逝。
??如果采用1的方法棋弥,則return的是points[index]
的引用(別名),當(dāng)回到主調(diào)函數(shù)中對這個return的內(nèi)容進(jìn)行修改,就會直接修改ArrayOfPoints類對象中的封裝動態(tài)數(shù)組內(nèi)部的數(shù)組元素(即Point類對象)里的數(shù)據(jù)。
??如果采用2的方法玄捕,則返回的是points[index]
這個Point類對象里面數(shù)據(jù)的“副本”,當(dāng)回到主調(diào)函數(shù)中對這個“副本”進(jìn)行的任何修改都不會影響到ArrayOfPoints類對象里的封裝動態(tài)數(shù)組中的元素里的數(shù)據(jù)棚放。