클래스속의 클래스
글쓴이: jee89 / 작성시간: 화, 2003/05/13 - 9:37오전
클래스속의 클래스!
#include <iostream.h> class CBase { int baseValue; public: class CNest { int value; public: CNest( int val = 0 ) : value( val ) { cout << "CNest Constructor " << endl; } }; CBase( int val = 0 ) : baseValue( val ) { cout << "CBase Constructor " << endl; } }; int main() { CBase cb; cout << "sizeof CBase " << sizeof ( CBase ) << endl; // 사이즈 4 CBase::CNest cn(3); cout << "sizeof cb object " << sizeof cb << endl; // 사이즈 4 cout << "sizeof cn object " << sizeof cn << endl; // 사이즈 4 }
CBase의 object( cb )를 생성했을때,
내부클래스 CNest객체가 생성되지 않네요.( 사이즈 4 )
또, 내부클래스 객체( cn )를 별도로 생성했는데도
cb , cn 사이즈가 4인것은 왜그런지요?
Forums:
소스를 자세히 한번 보십시오.CNest는 그냥 클래스 원형을 정의해
소스를 자세히 한번 보십시오.
CNest는 그냥 클래스 원형을 정의해 놓은겁니다.
선언한게 아니고 정의 된거란 말이죠....
그러니까 당연히 생성이 안되죠.
CBase 안에다가 다음과 같이 선언을 해주셔야지
CNest라는 오브젝트가 CBase가 생성될때 같이
생성되겠죠.
class CBase
{
어쩌고 저쩌고.....;
CNest m_objNest; ==> 이렇게 선언을 하셔야 합니다.
어쩌고 저쩌고....;
}
그럼 수고하세요.
댓글 달기