ठीक है इसलिए मैं यह नहीं कह रहा हूं कि वस्तुएं संदर्भ प्रकार क्यों हैं या संदर्भ द्वारा पारित की गई हैं, लेकिन मैं आपको एक उदाहरण दे सकता हूं कि यह लंबे समय में एक बहुत अच्छा विचार क्यों है।
यदि मैं गलत नहीं हूं, जब आप सी ++ में एक क्लास इनहेरिट करते हैं, तो उस क्लास के सभी तरीकों और गुणों को शारीरिक रूप से चाइल्ड क्लास में कॉपी किया जाता है। यह उस कक्षा की सामग्री को फिर से बच्चे की कक्षा के अंदर लिखने जैसा होगा।
तो इसका मतलब यह है कि आपके बच्चे के वर्ग में कुल आकार का डेटा मूल वर्ग और व्युत्पन्न वर्ग में सामान का एक संयोजन है।
ईजी: #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;
}
जो आपको दिखाएगा:
Size of array of 20 ints: 80
Size of Top Class: 80
Size of middle Class: 160
Size of bottom Class: 240
इसका मतलब यह है कि यदि आपके पास कई वर्गों की एक बड़ी पदानुक्रम है, तो ऑब्जेक्ट का कुल आकार, जैसा कि यहां घोषित किया गया है, उन सभी वर्गों का संयोजन होगा। जाहिर है, ये वस्तुएं बहुत सारे मामलों में काफी बड़ी होंगी।
मेरा मानना है कि समाधान, ढेर पर बनाना और पॉइंटर्स का उपयोग करना है। इसका मतलब यह है कि कई माता-पिता के साथ कक्षाओं की वस्तुओं का आकार एक अर्थ में, प्रबंधनीय होगा।
यही कारण है कि ऐसा करने के लिए संदर्भों का उपयोग करना अधिक बेहतर तरीका होगा।