Betrachten Sie die folgende abstrakte Klasse AbstractEngine
:C++: Aufruf statische Methode von statischer Methode geerbt
class AbstractEngine {
static void init();
static std::string getName();
};
und die folgenden 2 Implementierer Klassen berücksichtigen:
class Engine1 : public AbstractEngine {
static std::string getName();
};
class Engine2 : public AbstractEngine {
static std::string getName();
};
Und die init()
Funktion die richtigen nennen sollte getName()
nach der Art der Klasse:
void AbstractEngine::init() {
std::cout << getName() << std::endl;
}
Zum Beispiel, wenn ich Engine1::init()
nennen, möchte ich es Engine1::getName()
nennen und nicht AbstractEngine::getName()
Wie kann ich AbstractEngine::init()
wirklich machen die korrekte Umsetzung der getName()
zu nennen?
keine Möglichkeit, eine tatsächliche Instanz einer Klasse ohne. –
"nach dem Typ der Instanz" ... Aber welche Instanz, wenn Ihre Funktion statisch ist? – Quentin
Ich meine, wenn ich 'Engine1 :: init()', möchte ich es nennen 'Engine1 :: getName()' – SomethingSomething