Baiklah jadi saya tidak mengatakan ini adalah mengapa objek adalah tipe referensi atau lulus dengan referensi tapi saya bisa memberi Anda sebuah contoh mengapa ini adalah ide yang sangat bagus dalam jangka panjang.
Jika saya tidak salah, ketika Anda mewarisi kelas di C ++, semua metode dan properti dari kelas itu secara fisik disalin ke kelas anak. Itu seperti menulis isi kelas itu lagi di dalam kelas anak.
Jadi ini berarti bahwa ukuran total data di kelas anak Anda adalah kombinasi dari barang-barang di kelas induk dan kelas turunan.
EG: #termasuk
class Top
{
int arrTop[20] = {1,2,3,4,5,6,7,8,9,9,8,7,6,5,4,3,2,1};
};
class Middle : Top
{
int arrMiddle[20] = {1,2,3,4,5,6,7,8,9,9,8,7,6,5,4,3,2,1};
};
class Bottom : Middle
{
int arrBottom[20] = {1,2,3,4,5,6,7,8,9,9,8,7,6,5,4,3,2,1};
};
int main()
{
using namespace std;
int arr[20];
cout << "Size of array of 20 ints: " << sizeof(arr) << endl;
Top top;
Middle middle;
Bottom bottom;
cout << "Size of Top Class: " << sizeof(top) << endl;
cout << "Size of middle Class: " << sizeof(middle) << endl;
cout << "Size of bottom Class: " << sizeof(bottom) << endl;
}
Yang akan menunjukkan kepada Anda:
Size of array of 20 ints: 80
Size of Top Class: 80
Size of middle Class: 160
Size of bottom Class: 240
Ini berarti bahwa jika Anda memiliki hierarki besar dari beberapa kelas, ukuran total objek, seperti yang dinyatakan di sini akan menjadi kombinasi dari semua kelas tersebut. Jelas, benda-benda ini akan sangat besar dalam banyak kasus.
Solusinya, saya percaya, adalah membuatnya di heap dan menggunakan pointer. Ini berarti bahwa ukuran objek kelas dengan beberapa orang tua akan dapat dikelola, dalam arti tertentu.
Inilah sebabnya mengapa menggunakan referensi akan menjadi metode yang lebih disukai untuk melakukan ini.