मान लीजिए हमारे पास 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