Maybe I misunderstand the question, but if I follow you, wouldn't you just write:
class CGramps
{
virutal bool FunctionSupported(GUID ID);
};
class CDad : public CGramps
{
virtual bool FunctionSupported(GUID ID);
};
class CSon : public CDad
{
bool FunctionSupported(GUID ID);
};
and your functions would be:
CSon::FunctionSupported(GUID ID)
{
if (ID == SON_ID)
return true;
return CDad::FunctionSupported(ID);
}
CDad::FunctionSupported(GUID ID)
{
if (ID == DAD_ID)
return true;
return CGramps::FunctionSupported(ID);
}
CGramps::FunctionSupported(GUID ID)
{
if (ID == GRAMPS_ID)
return true;
return false;
}
Would that not do what you are asking?
"They laughed when I said I was going to be a comedian ... They're not laughing now." - Bob Monkhouse