Гаразд, тому я не кажу, що це саме те, чому об'єкти є еталонними типами або передаються через посилання, але я можу навести вам приклад того, чому це дуже хороша ідея в перспективі.
Якщо я не помиляюся, коли ви успадковуєте клас на C ++, всі методи та властивості цього класу фізично копіюються в дочірній клас. Було б як би знову записати вміст цього класу всередині дочірнього класу.
Отже, це означає, що загальний розмір даних у вашому дочірньому класі - це комбінація матеріалів батьківського класу та похідного класу.
EG: #включити
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;
}
Що б вам показало:
Size of array of 20 ints: 80
Size of Top Class: 80
Size of middle Class: 160
Size of bottom Class: 240
Це означає, що якщо у вас є велика ієрархія декількох класів, загальний розмір об'єкта, як заявлено тут, буде поєднанням усіх цих класів. Очевидно, що в багатьох випадках цих об'єктів було б значно більше.
Я вважаю, що рішення - створити його на купі та використовувати покажчики. Це означає, що розмір об’єктів занять з кількома батьками був би керованим, у певному сенсі.
Ось чому використання посилань було б більш кращим методом для цього.