Say you have a sub class B which inherits from super class A. You want a function that can accept either A or B.
template <typename T>
void someFunc(T* pObj, bool someOtherArg)
{
pObj->AnInheritMethod();
if (pObj->IsASub())
{
pObj->ANonInhertMethod();
}
}
When I compile this (Visual Studio 6) I get:
error C2065: 'pObj' : undeclared identifier
Am I way off base here?
You don’t need a function template for this; the following will do just fine:
Or, if you prefer to use your
IsASub()member function instead ofdynamic_cast:Aside from the missing return type, I don’t see anything obviously wrong with the code in your example; I don’t have Visual C++ 6 installed to check.