मान लीजिए कि हमारे पास C++ में एक खाली क्लास है। आइए अब जांचते हैं कि इसका आकार 0 है या नहीं। दरअसल, मानक 0 आकार की वस्तुओं (या कक्षाओं) की अनुमति नहीं देता है, ऐसा इसलिए है क्योंकि इससे दो अलग-अलग वस्तुओं के लिए समान स्मृति स्थान होना संभव हो जाएगा। इस अवधारणा के पीछे यही कारण है कि एक खाली वर्ग का आकार भी कम से कम 1 होना चाहिए। यह ज्ञात है कि एक खाली वर्ग का आकार शून्य नहीं होता है। आम तौर पर, यह 1 बाइट है। नीचे दिया गया उदाहरण देखें।
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include<iostream> using namespace std; class MyClass { }; int main() { cout << sizeof(MyClass); }
आउटपुट
1
यह स्पष्ट रूप से दर्शाता है कि एक खाली वर्ग की वस्तु को यह सुनिश्चित करने के लिए कम से कम एक बाइट की आवश्यकता होगी कि दो अलग-अलग वस्तुओं के अलग-अलग पते होंगे। नीचे दिया गया उदाहरण देखें।
उदाहरण
#include<iostream> using namespace std; class MyClass { }; int main() { MyClass a, b; if (&a == &b) cout <<"Same "<< endl; else cout <<"Not same "<< endl; }
आउटपुट
Not same
डायनामिक आवंटन के लिए भी, नया कीवर्ड उसी कारण से अलग पता देता है।
उदाहरण (C++)
#include<iostream> using namespace std; class MyClass { }; int main() { MyClass *a = new MyClass(); MyClass *b = new MyClass(); if (a == b) cout <<"Same "<< endl; else cout <<"Not same "<< endl; }
आउटपुट
Not same