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
[36190] Re:Re:Re;; 다시 한번 부탁드립니다.
김상면 [] 846 읽음    2004-07-09 15:05
class a
{  virtual ShowMessage()
   {   MessageBox("a");
   }
};

class b : public a
{   ShowMessage()
    {    a::ShowMessage();
         MessageBox("b");
    }
}

이제는 아시겠지요
   vitual은 멤버가 파생 클래스에서 새로이 정의 된다는 의미이고
   이렇게 선언된 멤버는 다음과 같이 실행 하더라고 객체 생성시 지정된 클래스의 멤버가
   호출됩니다.
   main()
   {  a* pA;
      b* pB;
  
      pA = new b(); // 클래스 b객체가 생성되어 b::ShowMessage()호출
      pB = new b(); // 클래스 b객체가 생성되어 b::ShowMessage()호출
      pA->ShowMessage();
      pB->ShowMessage();
   }
   출력:
    b
    b
    이렇게 b만 출력됩니다.
a::은 클래스이름(개체명이 아님)으로 멤버를 호출할때 사용합니다.
그럼


배우고잡당 님이 쓰신 글 :
: B++빌더에 inherited 란게 있나요??
:
: 제가 초보라.. 다시 한번 자세한 설명 부탁드립니다.
: 폼A의 Button1 을 아래와 같이 작성하였습니다.
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
:         ShowMessage("111");
: }
:
: 이 폼A 를  폼B가 상속받아 만들어졌습니다.
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: }
:
: 이렇게 됐을 경우 폼B의 Button1을 클릭하면
:  ShowMessage("111");
: 이것이 실행되는데...
:
: 폼B에 ShowMessage("222"); 를 작성했을 경우
:
: 첫째
: ShowMessage("222"); 만 실행되는 방법.
:
: 둘째
: ShowMessage("111");
: ShowMessage("222");
: 이런 형태로 수행되는 방법
:
: 셋째
: ShowMessage("222");
: ShowMessage("111");
: 이런식으로 실행되는 방법...을 알고싶습니다.
:
: (__) 감사드립니다~
:
:
:
:
:
:
:
:
: //////////
: civilian 님이 쓰신 글 :
: : 해당 이벤트를 virtual로 선언하면 됩니다.
: : 상속받은 폼에서는 같은 이름의 이벤트를 override로 선언하고
: : 기존 기능을 수행하려면 inherited를 불러주면 됩니다.
: :
: : 배우고잡당 님이 쓰신 글 :
: : : 이제 막 씨빌더를 공부하는 사람입니다.
: : : 너무 개념이 없어 힘드네염 ;;
: : :
: : : 해보고싶은건
: : : 윈도우폼을 상속받는 것입니다.
: : :
: : : 예로 A라는 폼을 B가 상속 받았습니다.
: : : A에는 BUTTON1 이 있고
: : : 클릭이벤트에는 ShowMessage("1"); 이라고 돼 있을 경우
: : : B폼은 상속받았기 때문에
: : : B 폼의 BUTTON1을 클릭하면
: : : ShowMessage("1"); 이 실행되겠죠..
: : :
: : : 여기서 궁금한 점은요..
: : : 어떻게 코딩을 하면..
: : : ShowMessage("1");을 상속받지 않고
: : : B폼에만 있는 별도의 ShowMessage("2"); 란 것만 수행 할 수 있는지..
: : :
: : : 또,
: : : ShowMessage("1"); 을 상속받고
: : : ShowMessage("2"); 라는 명령을 실행할 수 있는지
: : :
: : : 또, 먼저
: : : ShowMessage("2"); 를 수행한 후에
: : : ShowMessage("1"); 을 수행할 수 있는지에 대한 문제 입니다.
: : :
: : : 너무 초보라...힘드네염..
: : : 자세한 설명 부탁드립니다..
: : :
: : : 오늘도 좋은 하루 되세여..~
: : :

+ -

관련 글 리스트
36177 [질문]상속에 대하여.... 배우고잡당 777 2004/07/09
36180     Re:[질문]상속에 대하여.... civilian 935 2004/07/09
36185         Re:Re;; 다시 한번 부탁드립니다. 배우고잡당 778 2004/07/09
36190             Re:Re:Re;; 다시 한번 부탁드립니다. 김상면 846 2004/07/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.