у вас есть суб класс B, который наследуется от суперкласса А. Вы хотите функцию, которая может принимать А или В.C++ - функция Accept подклассов или супер
template <typename T>
void someFunc(T* pObj, bool someOtherArg)
{
pObj->AnInheritMethod();
if (pObj->IsASub())
{
pObj->ANonInhertMethod();
}
}
Когда я компилирую это (Visual Studio 6) Я получаю:
error C2065: 'pObj' : undeclared identifier
Я ухожу от основания здесь?
Прежде всего, вы должны объявить тип возврата для 'someFunc'. Во-вторых, создание версии 'A' этого метода (' someFunc ') завершится неудачно, поскольку' pObj' не будет определять методы производного класса (в этом случае AnInheritMethod). –