|
논리상 별로 이상이 없는 것 같아서,
제가 실험해 봤는데 잘 됩니다.
: class TTest : public TObject
: {
: private: // User declarations
: TList * UserList;
: public:
: __fastcall TTest ();
: void __fastcall UserSetting();
: } <<--- 이 부분을 }; 로 바꾸세요. 문법이 } 만 쓰면 에러가 나게 되어 있습니다. 엉뚱한데서 에러가 난것 처럼 보입니다.
그리고 VCL 객체는 Heap 영역에 만들어지고, 전역 변수처럼 자동 0로 초기화 됩니다.
그리고 컴파일러의 에러 메시지와 그 에러 라인을 그대로 믿으면 나중에 에러를 못찾아 힘들게 됩니다.
에러라인 근처를 잘 봐야 합니다.
그럼..
친구들 님이 쓰신 글 :
: 다음과 같이 프로그램을 했습니다....
:
: 근데..왜 계속 저 지점에서 에러가 날까요....이해가 되지 않습니다...ㅜㅜ;;
:
:
:
:
: class TTest : public TObject
: {
: private: // User declarations
: TList * UserList;
: public:
: __fastcall TTest ();
: void __fastcall UserSetting();
: }
:
: 위와 같은 header파일이 있고....cpp에는 아래와 같이 있습니다..
:
:
:
: __fastcall TTest ::TTest ()
: {
: }
:
: void __fastcall TTest ::UserSetting()
: {
: if ( UserList == NULL ) <=== 여기서 에러!!!!!!!!!!! (객체가 생성되지 않았다는 에러인듯....)
: UserList = new TList;
:
: // 사용자 정보를 TList에 담는다...
: }
:
: UserList는 TList 타입인데...이넘이 객체가 되어있지 않으면 객체화 시켜서 값을 담는 기능을 하고 싶습니다..
:
: 위와 같은 방법으로 코딩이 안되면 어떻게 해야하나요.....
:
: 즉, 저 TList객체가 있는지 없는지 검사를 해서 없으면 객체생성하고자 한다면....
: 방법이나 다른 제공해주는 메서드가 있는건가요.??
:
: 그러고 보면 또 이상한점이 있네요...흠...
:
: 지금까지 객체생성을 하지 않고....다른 header파일에 정의된 method를 불러써도 문제가 없는거 같던데...
: 그래도 되는건가하는 의문도 있군요...^^;;
|