C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[46549] Re:TObject상속시 Destructor 사용 불가 문제점?
이광수 [suppul] 1298 읽음    2006-09-15 14:17
제가 쓰고 제가 답변하는 군요 ^^;

destructor를 못쓰는 것이 아니라 __fastcall을 붙여주어야 하는 군요.
델파이로 부터 상속된 컴포넌트나 클래스는 반드시 __ fastcall도 같이 써주어야하는 간단한 일을 까먹었네요.


class CStringArray : public TObject
{
    private:
    TStringList * m_pList; // Internal String Data

    public:
    __fastcall CStringArray(); // constructor
    __fastcall virtual ~CStringArray(); // Destructor
};

결국 이렇게 되면 맞는 것으로 보입니다.
VCL과 관련된 것이 아닌 상황에서는 관계 없는 것이군요.

이광수 님이 쓰신 글 :
: PDA용(eVC)으로도 개발을 해야 해서 몇가지 BCB의 콤퍼넌트를 Wrapping해서 사용하려고 했습니다.
: 문제는 다음과 같이 TObject 에서 상속을 받으면 디스트럭터가 중복된다는 에러가 난다는 것인데요.
:
: [C++ Error] vcCompatible.h(16): E2113 Virtual function 'CStringArray::~CStringArray()' conflicts with base class 'TObject'
:
: class CStringArray : public TObject
: {
:     private:
:     TStringList * m_pList; // Internal String Data
:
:     public:
:     CStringArray(); // constructor
:     ~CStringArray(); // Destructor <-- 에러남
: };
:
: 델파이에서는 Destroy 펑션에 써주면 되었는데 BCB에서는 상속시에 문제가 생겨서 어떻게 처리해야 할지 모르겠습니다.
:
: 물론 상속을 TObject로 부터 받지않으면 문제가 없겠지만, 향후에 CStringArray를 TObjectList 와 같이 운영하게 되는 경우에는 에로사항이 많을 것으로 생각되어서 사도해본 것인데요.
:
: 다른 좋은 방법은 없을까요 ^^

+ -

관련 글 리스트
46548 TObject상속시 Destructor 사용 불가 문제점? 이광수 841 2006/09/15
46549     Re:TObject상속시 Destructor 사용 불가 문제점? 이광수 1298 2006/09/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.