2016-04-02 7 views
0

Hallo Ich habe eine Sammlung von Klassen, die von der Basisklasse abgeleitet sind. Alle Klassen verwenden eine Methode, die ich als virtuelle Leere eingerichtet habe.Hinzufügen weiterer Parameter für bestimmte virtuelle Methode

virtual void do_method(cPlayer&, cPlayer&) = 0; 

jedoch für Ein bestimmte Klasse würde ich gerne die gleiche do_method für diese Klasse verwenden, aber ich würde es einen anderen Parameter haben möge, die ein Vektor von Zeigern zum Beispiel sein würden.

virtual void do_method(cPlayer&, cPlayer&, vector<cBase*>); 

Gibt es eine Möglichkeit, dies ohne die Funktion Aufschaltung zu tun, da ich nicht die aktuellste Version von C++ verwenden und das ist, was ich über kam bei der Recherche.

+1

Wie kann es sowohl „die gleiche“ Methode, und eine anderen Parameter zur gleichen Zeit? – jtbandes

+0

@jtbandes Sie sagen, ich sollte nur eine neue do_method mit den drei Parametern erstellen? Und lassen Sie die do_method mit zwei Parametern für diesen einen leeren? – User5916261

Antwort

0

Sie wahrscheinlich zu rufenden die virtuellen Funktion durch Ihre veränderten ein, so etwas wie:

void do_method(cPlayer& p1, vector<cBase*>& v) { 
    for (auto p: v) 
     do_method(p1, *p); 
} 
Verwandte Themen