|
음.. 그렇군요..
맨날 C 만 개발하다가.. C++로 개발 하려다 보니..
그걸 몰랐었군요..
에러에도 abstract class 라고 나왔는데..
감사합니다.
^^
임문환.실업자 님이 쓰신 글 :
: TStrings 는 추상클래스입니다.
: 따라서 그 인스턴스를 생성할 수 없습니다.
: 이 클래스의 각종 매서드를 구현해놓은 클래스가 있습니다.
: TStringList를 사용하십시오.
:
: TStrings는 여러 클래스들에서 구현해서 사용하고 있습니다.
: 보통 줄단위로 문자열을 보여주는 클래스들이 이에 해당합니다.
: 그들 간에는 Assign 매서드를 사용해서 자료를 쉽게 교환할 수 있습니다.
: TStringList, TMemo, TRichEdit, TComboBox, TListBox,
:
:
: 김원주 님이 쓰신 글 :
: : 안녕하세요.
: : 몇시간 끙끙대다가.. 게시판을 찾아도 안보이길래.. 이렇게 글을 올립니다.
: : 현재 진행하려는 것은 레지스트리에서 각 키를 읽어와서 처리하려고 하는
: : 함수를 만드는 중인데...
: : 레지스트리에 있는 키를 모두 읽어와 처리하려는 과정에서..
: : TRegistryIniFile 클래스의 객체중 ReadSection() 함수를 사용하게 되었습니다.
: : 그러는 과정에서 TStrings 객체가 필요하여.. 다음과 같이 하는데..
: : 컴파일이 안되네요..
: : 제가 뭘 잘 모르고 있는건지 확인좀 부탁 드립니다.
: :
: : void __fastcall TUserForm::FormShow(TObject *Sender)
: : {
: : :
: : TStrings *DnList = new TStrings(); // 에러나는 부분
: : MainForm->ini->ReadSection("Receiver List", DnList);
: : :
: : }
: :
: : 위처럼 하려고 합니다.
: : 위에서 에러가 나는 부분에서 아래와 같이 에러가 나네요..
: :
: : [C++ Error] UserManagement.cpp(45): E2352 Cannot create instance of abstract class 'TStrings'
: : [C++ Error] UserManagement.cpp(45): E2353 Class 'TStrings' is abstract because of '_fastcall TStrings::Get(int) = 0'
: :
: : 쩝..
: : TStrings 를 초기화하는 방법이 잘못된건가요?
: : 해결좀 부탁 드립니다.
: :
: : P.S. 제가 해본 방법으로는 초기화를 하지 않고 돌려본것(당근 실행도중 에러나겠죠.),
: : 그리고 DnList 를 포인터로 선언하지 않고 그냥 변수로 선언해서 new를 사용하지
: : 않은 경우(이런경우도 에러나네요.. VCL 함수는 new를 써서 초기화 해야 된다고..)
: : 입니다.
|