¿¹Á¦

class Base {
public:
void fnc();
};

class Derived: public Base {
public:
void fnc(){}
};

int main(){
Derived d;

Base *basePtr = &d;
Derived *derivedPtr = &d;

basePtr->fnc();//calls Base::fnc()
derivedPtr->fnc();  //calls Derived::fnc()

return 0;
}

¼Ö·ç¼Ç
°¡»óÀÌ ¾Æ´Ñ ÇÔ¼ö¸¦ ´ëüÇÏÁö ¸¶½Ê½Ã¿À. ±âº» Ŭ·¡½º¸¦ »ç¿ëÇÏÁö ¾Êµµ·Ï ¼³°è¸¦ º¯°æÇϰųª ±âº» Ŭ·¡½º ÇÔ¼ö¸¦ °¡»óÀ¸·Î ¸¸µé¾î ´Ù¾çÇÑ ÀÛµ¿ÀÌ °¡´ÉÇϵµ·Ï ÇϽʽÿÀ.


class Base {
public:
virtual void fnc();
};

class Derived: public Base {
public:
void fnc(){}
};

int main(){
Derived d;

Base *basePtr = &d;
Derived *derivedPtr = &d;

basePtr->fnc();//calls 
Derived::fnc()
derivedPtr->fnc();  //calls Derived::fnc()

return 0;
}