Mam następujący:Czyste funkcje wirtualne i niewykorzystane argumenty funkcji podrzędnych w C++
class Parent {
public:
virtual bool foo(vector<string> arg1, vector<string> arg2) = 0;
};
class Child : public Parent {
public:
bool foo(vector<string> arg1, vector<string> arg2);
};
// arg1 and arg2 not used - GIVES WARNING
bool Child::foo(vector<string> arg1, vector<string> arg2) {
return false;
}
Nie ma realizacja dominującą Foo (...), ponieważ jest to czysta funkcja wirtualna. Rodzic mówi, że foo przyjmuje dwa argumenty wektorowe. Dziecko implementuje je poprawnie z dwoma argumentami łańcuchowymi, ale nie są one używane. JEDNAK, niektóre dzieci rodzica BĘDĄ używać tych argumentów, więc muszą zawsze tam być.
Czy jest jakikolwiek sposób mogę użyć przeciążenia, aby umożliwić foo w danej klasie Dziecko, aby nie mieć argumentów, mimo że rodzic mówi, że musi?
Wielkie dzięki.
ile chcesz skopiować 'arg1' i' arg2', lepiej zdać wektory przez const odniesienia. – kennytm
To wcale nie jest "problem z przeciążaniem" - mówisz tutaj o niewielkim ostrzeżeniu :-) –
Edytowanie w celu usunięcia przeciążenia z tytułu - uzgodniono przepraszam: -S. – ale