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
[29494] Re:[질문]E2113에러..
박지훈.임프 [cbuilder] 849 읽음    2004-04-24 04:53
TObject의 파괴자인 TObject::~TObject() 함수와 콜링 컨벤션이 달라서 에러가 난 겁니다.
함수 인자가 없어서 TObject의 파괴자와 인자 리스트가 같은데다 virtual로 선언되었기 때문에 완전히 새로운
함수가 아니라 오버라이딩으로 인식하는 거죠. 그런데 오버라이딩을 하려고 봤더니 콜링 컨벤션이 달라서
안된다는 얘깁니다.

TObject의 파괴자는 다음과 같이 선언되어 있죠.
virtual __fastcall ~TObject();
보시다시피 __fastcall이 붙어있죠. 따라서 ~CComm 함수에도 똑같이 __fastcall을 붙여주셔야 합니다.
virtual __fastcall ~CComm();

이것은 파괴자라서가 아니라, 모든 함수에서 virtual로 선언하고 조상 클래스에 같은 이름과 같은 인자리스트의
함수가 있을 경우 동일합니다. 콜링 컨벤션, 리턴 타입 등을 맞춰주어야 하죠.


초보 님이 쓰신 글 :
: [C++ Error] Comm.h(114): E2113 Virtual function 'CComm::~CComm()' conflicts with base class 'TObject'
:
: 위와 같은 에러가 자꾸 발생하는데..이유를 모르겠네여,,
: class CComm : public TObject
: {
:    .....
: public:
:     CComm();
:          virtual ~CComm();
:    ....
: };
: 위와 같이 선언했는데..뭐가 잘못됐는지 모르겠네요..
:
:

+ -

관련 글 리스트
29476 [질문]E2113에러.. 초보 759 2004/04/23
29494     Re:[질문]E2113에러.. 박지훈.임프 849 2004/04/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.