상속의 개념입니다.
class CA
{
public:
__fastcall CA();
__fastcall ~CA();
public:
int V1;
}
class CB : public CA
{
public:
__fastcall CB();
__fastcall ~CB();
public:
int V2;
}
위에 소스를 보면 CA, CB라는 클래스가 있습니다.
하지만, CB는 CA클래스를 상속 받았습니다.
고로, CB는 CA의 모든 기능을 사용할 수 있습니다. (물론, Protected나 Public으로 선언된건 만입니다만...)
그러면 CB는 CA로만 사용이 가능합니다.
VLC컴포넌트는 모두 위와 같이 상속의 개념으로 연결되어 있습니다.
TStringList도 헬프(F1 -> Hierarchy를 눌러보세요.)을 보면
TObject - TPersistant - TString - TStringList로 상속되어 집니다.
다른 컴포넌트들도 마찬가지로 최상위는 TObject로 귀결지어집니다.
OnClick(TObject *Sender)에서 TObject를 사용한 이유는 모든 클래스를 넣을 수 있기 때문입니다.
위와 같이하면 여러가지 재미있는 장난(?)도 가능합니다.
예를 들어 Button과 Label을 Click(TObject *Sender)라는 함수로 같이 링크를 걸면 아래와 같이 코딩도 가능합니다.
void __fastcall Click(TObject *Sender)
{
if dynamic_cast(Sender) then
{
//Message '버튼이 클릭되었습니다.
}
if dynamic_cast(Sender) then
{
//Message '라벨이 클릭되었습니다.
}
}
제가 프로그램 내공이 부족해서리 이렇게 밖에 설명을 못해드리겠네요..
나머진 고수님들께서 채워주실길 바랍니다.
그럼 이만~ 쉬리릭~
|