Tamam, bu yüzden tam olarak neden nesnelerin referans türü olduğunu ya da referanstan geçildiğini söylemiyorum ama size bunun neden uzun vadede çok iyi bir fikir olduğuna dair bir örnek verebilirim.
Yanılmıyorsam, bir sınıfı C ++ 'da miras aldığınızda, o sınıfın tüm yöntemleri ve özellikleri fiziksel olarak alt sınıfa kopyalanır. Bu sınıfın içeriğini tekrar çocuk sınıfına yazmak gibi bir şey olur.
Bu, çocuk sınıfınızdaki verilerin toplam boyutunun, ana sınıftaki ve türetilmiş sınıftaki öğelerin bir birleşimi olduğu anlamına gelir.
EG: #include
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;
}
Hangisi size gösterecekti:
Size of array of 20 ints: 80
Size of Top Class: 80
Size of middle Class: 160
Size of bottom Class: 240
Bunun anlamı, birkaç sınıftan oluşan büyük bir hiyerarşiniz varsa, burada belirtilen nesnenin toplam boyutunun, bu sınıfların hepsinin birleşimi olacağı anlamına gelir. Açıkçası, bu nesneler çoğu durumda oldukça büyük olacaktır.
Çözüm, öbek üzerinde oluşturmak ve işaretçiler kullanmak olduğuna inanıyorum. Bunun anlamı, birkaç ebeveyne sahip olan sınıf nesnelerinin boyutunun bir anlamda yönetilebilir olmasıdır.
Bu nedenle referansları kullanmak, bunu yapmak için daha çok tercih edilen bir yöntem olacaktır.