範例

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


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


void call
DerivedFunction(Base *ptr){

Derived *dp = (Derived*) ptr;
dp->fnc();

}

解決方案
請將一個類別的指標強制轉型成它並未繼承的類別指標。 若要避免錯誤,請勿將指標用於向下強制轉型。 請改用虛擬函數。

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


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


void callDerivedFunction
(Base *ptr){

ptr->fnc();

}