C++에 하나의 빈 클래스가 있다고 가정합니다. 이제 크기가 0인지 여부를 확인하겠습니다. 실제로, 표준은 크기가 0인 객체(또는 클래스)를 허용하지 않습니다. 이는 두 개의 개별 객체가 동일한 메모리 위치를 가질 수 있기 때문입니다. 이것이 빈 클래스라도 크기가 1 이상이어야 한다는 개념의 배경이 되는 이유입니다. 빈 클래스의 크기는 0이 아닌 것으로 알려져 있습니다. 일반적으로 1바이트입니다. 아래 예를 참조하십시오.
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
#include<iostream> using namespace std; class MyClass { }; int main() { cout << sizeof(MyClass); }사용
출력
1
하나의 빈 클래스의 객체가 두 개의 다른 객체가 다른 주소를 갖도록 하기 위해 적어도 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