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
[17670] Re:[질문] VCL컴포넌트 만드는데 오버라이딩
임승균.조로 [] 813 읽음    2002-04-16 20:41
안녕하세요

TCustomMemo의 KeyPress는 DYNAMIC으로 선언되어있습니다..

잠깐 DYNAMIC에 대해 Developer's Guide와 돔말에 나온 설명을 대해서 적겠습니다..

DYNAMIC macro는 __declspec(dynamic) 나타내는 것이구요 이것은 virtual과 같은 의미입니다.
DYNAMIC macro는 차일드에서 선언될때 virtual로 선언될수 없구요, 그반대경우도 마찬가지입니다.
글구 DYNAMIC macro는 차일드에서 선언될때 생략할수 없답니다..
그러니까 아래 문제는
선언시에 Keypress 앞부분에 이함수는 DYNAMIC function이다 라고 써주시면 되겠군여

...
protected:
    DYNAMIC void __fastcall KeyPress(char &Key);
...

글구 돔말에는 virtual이나 DYNAMIC이나 같은 의미이지만 실행시 차이점을 갖는다라고 합니다.
virtual은 속도에 최적화 되고, DYNAMIC은 코드크기에 최적화 된다고 합니다..

그럼 즐프하세요


양정석 님이 쓰신 글 :
: 볼랜드 C++빌더 정복 4.0 정태영저 가남사의 제25장 컴포넌트 만들기를 보고
: 컴포넌트 만들기를 하고 있습니다.
:
:
: KeyPress이벤트를 오버로딩하는데 에러메시지가 자꾸 뜹니다. 책에서 하라는 대로
: protected:에 잘 코딩했는데 컴파일 하면 오류가 납니다.
: 상위 클래스에 virtual로 선언되어있는데 충돌이 난다는 데 뭔지 모르것어요.
: 어떻게 고쳐야 하지요? 책이 잘못 된건가요?
: 부탁드립니다.
:
: 아래 소스코드및 에러메시지.
:
: class PACKAGE TCustomTt : public TCustomMemo
: {
: private:
:         double FieldValue;
:         void __fastcall SetFieldValue(double A);
:         void __fastcall FormatNum();
: protected:
:         void __fastcall KeyPress(char &Key);
:
: ...
: ..
: .
:
:
: 에러 메시지:
: [C++ Error] CustomTt.h(19): E2113 Virtual function '_fastcall TCustomTt::KeyPress(char &)' conflicts with base class 'TCustomMemo'
:
:
:
:
:
:
:

+ -

관련 글 리스트
17662 [질문] VCL컴포넌트 만드는데 오버라이딩 양정석 776 2002/04/16
17670     Re:[질문] VCL컴포넌트 만드는데 오버라이딩 임승균.조로 813 2002/04/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.