Объяснить свою проблему попробую в коде.
Есть базовый класс. В нем есть некая виртуальная функця.
class Base
{
public:
virtual void Foo()
{
//Здесь содержится ее первоначальное поведение
}
}
Есть сторонняя процедура которая использует класс Base и ничего не знает про потомков.
void ForeignProc(Base* pObj)
{
...
pObj->Foo();
...
}
Ну короче. Проблема в том, что для умолчального поведения можно сделать ряд оптизаций. Так как заранее известно, какие ресурсы умолчальный метод использует, а какие нет. Ну и соответсвенно, не используемые ресурсы можно не блокировать (ими может пользоваться другой поток). Моя мечта — сделать это без дополнительных классов... То есть без дополнительных классов и прямо внутри ForeignProc определить — перегружена функция Foo или нет.
При наследовании встает другая проблема. Но на первом этапе хотелось бы обсудить именно этот момент (что бы не засорять заранее умы). Может есть способы?