Я немного озадачен полиморфизмом во время выполнения.Поправьте меня, если я ошибаюсь, но, насколько мне известно, полиморфизм во время выполнения означает, что определения функций будут решаться во время выполнения.
Возьмите этот пример:
class a
{
a();
~a();
void baseclass();
}
class b: class a
{
b();
~b();
void derivedclass1();
}
class c: class a
{
c();
~c();
void derivedclass2();
}
Методология вызова:
b derived1;
a *baseptr = &derived1; //here base pointer knows that i'm pointing to derived class b.
baseptr->derivedclass1();
В приведенной выше методологии вызова базовый класс знает, что он указывает на производный класс b.
Так, где существует неоднозначность?
В каких случаях определения функций получатразрешается во время выполнения?