Czy metody zdefiniowane w klasie bazowej powinny być wirtualne?

0

Chciałbym napisać program który wygląda mniej więcej tak : klasa bazowa - zawierająca kilka metod i 2 klasy pochodne. Klasa bazowa powinna miec zdefiniowane metody za pomoca metod czysto wirualnych (?). Najlepiej jak pokaze na przykładzie :

Metoda zdefiniowana w klasie bazowej:

bool empty()
{
   if (size() == 0) return true;
   else return false;
}

I tak metoda size() powinna być w opowiednio różny sposób zefiniowana w każdej z podklas przy czym (tak mi sie wydaje) że powinna być w nadklasie zdeklarowana jako metoda czysto wirtualna :

virtual int size() = 0;

I moje pytanie jest takie czy te metody w nadklasie zdefinowane przy pomocy metod abstrakcyjnych odpowiednio różnych dla podklas powinny być virualne? Czy to w ogóle zadzała w sposób jaki myśle?

dodanie znacznika <code class="cpp"> - @furious programming

0

Chcesz by klasa bazowa miała metody czysto virtualne? Skoro tak to nie możesz w tej klasie definiować metod. Muszą być w niej tylko deklaracje tych funkcji.
Przykładowo:
http://stackoverflow.com/questions/1929209/when-overriding-a-virtual-member-function-why-does-the-overriding-function-alwa

1 użytkowników online, w tym zalogowanych: 0, gości: 1