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