Y at-il de toute façon un type d '"héritage d'empilement" où vous remplacez potentiellement plusieurs fonctions d'une classe de base en fonction d'autres appels?polymorphisme C++ de plusieurs classes
par exemple quelque chose comme:
class Base {
void func1(){/* do something */}
void func2(){/* do something */}
};
class A1 {
void func1(){/* do something else */}
};
class A2 {
void func2(){/* do something else */}
};
int main(){
A1 a1obj = new A1();
A2 a2obj = new A2();
Base obj = new Base();
obj = &a1obj;
obj = &a2obj;
obj.func1(); //now A1::func1()
obj.func2(); //now A2::func2()
}
Merci
Ouvrez votre C++ livre au chapitre qui explique comment utiliser ' std :: function', et le lire. –
Oui, mais vos fonctions doivent être virtuelles, vous devez dériver de la classe de base, et vous devrez utiliser des pointeurs ou des références si vous utilisez le type de base pour que le polymorphisme fonctionne. –
Cela sera probablement répondu [en lisant un couple de bons livres pour débutants] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list). –