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
[62827] Re:Re:장성호님, 의문점이 있는데요
동철이 [] 1016 읽음    2010-10-30 21:59
제가 크롬을 쓰는 관계로 답글이 안올려져서 다른 컴퓨터로 이제사 또 답글을 올려서 미안스럽습니다.

답글 올리신 것에 대해 의문점이 들어서 글 적었습니다.

다음 코드에
:
: class TPanel : public Extctrls::TPanel
: {
:   private:
:     TNotifyEvent FOnPaint;
: 
:   protected:
:     void __fastcall Paint(void)
:     {
:         inherited Paint();
:         if(FOnPaint)
:         {
:             FOnPaint(this);
:         }
:     }
: 
:   public:
:     __property Canvas; //protected인 프로퍼티를 public으로 변경
: 
:     __property TNotifyEvent OnPaint= {read=FOnPaint, write=FOnPaint}; //추가한 이벤트 
: };
: 
: #define TPanel ::TPanel
: 
: 

:   
: 자 이제 위 클래스를 이용하여 다음과 같이 코딩하시면됩니다.
:
:
: void __fastcall TForm1::FormCreate(TObject *Sender)
: {
:     Panel1->OnPaint=Panel1Paint;
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Panel1Paint(TObject *Sender)
: {
:     Panel1->Canvas->MoveTo(0,0);
:     Panel1->Canvas->LineTo(100,100);
: }
: //---------------------------------------------------------------------------
: 

:

질문드립니다.

1. c++문법에서 상속할 때 public으로 받은 경우에 부모클래스의 protected멤버를 자식 클래스가  임의로 public멤버로 재선언할 수가 있었나요? 제가 C++공부한 수련이 얕아 그런지 처음보는 구문이라서요. 빌더에서 컴파일에 아무 문제는 없던 것 같던데요. 제가 본 책은 2~4권 되는데(ex) C++기초플러스 4판) 그런 경우를 못보아서요. 참고문헌좀 소개해 주시면 감사하겠습니다.

2. 델파이에는 있지만 C++빌더에서는 필요없다고 하는 키워드 inherited가 보입니다. 예전에 임프님이 쓰셨던가(?) 그런 걸 본 적 있는 것 같습니다. 빌더4 바이블인가 하는 책에서도 읽은 기억이 나는데 당최 혼란스러워서요. 제 안목을 좀 높여주신다면 깊이 감사하겠습니다.

+ -

관련 글 리스트
62754 Panel에 그리기 동철이 1355 2010/10/23
62762     Re:Panel에 그리기 장성호 2229 2010/10/25
62827         Re:Re:장성호님, 의문점이 있는데요 동철이 1016 2010/10/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.