Mam wirtualną metodę C++, którą definiuję w pliku .h i implementuję w pliku .cc. Czy implementacja w pliku .cc powinna być oznaczona jako wirtualna, czy tylko deklaracja w pliku .h? Na przykład, mój nagłówek posiada:Czy wirtualna implementacja metody C++ w pliku .cpp powinna być oznaczona?
virtual std::string toString() const;
Sposób jest realizowany w moim .cc:
std::string
MyObject::toString() const {
[implementation code]
}
Jeżeli realizacja oznaczone wirtualne, czy powyższy kod OK? Czy to ma znaczenie?
just declaration –
Jest ** nielegalny **, aby oznaczyć implementację jako wirtualną. –
Czy Twój kompilator daje ci wybór? Jeśli tak, to który kompilator? – juanchopanza