Zawsze zastanawiałem się, dlaczego kodujemy
virtual void MyFunction() = 0;
i nie
pure virtual void MyFunction();
Czy istnieje odniesienie do podstawy tej decyzji?
Zawsze zastanawiałem się, dlaczego kodujemy
virtual void MyFunction() = 0;
i nie
pure virtual void MyFunction();
Czy istnieje odniesienie do podstawy tej decyzji?
Odpowiedzi:
Od projektowania i ewolucji C ++ - Bjarne Stroustrup - Addison-Wesley (ISBN 0-201-54330-3) - rozdział 13.2.3:
W każdym razie patrzenie na standard C ++ (§ 9.2 - Członkowie klasy)
= 0
nazywa się czysto specyfikatorem .źródło
pure
kontekstowe słowa kluczowego można umieścić na końcu definicji funkcji, więcvirtual void MyFunction() pure
zamiast= 0
, aby przejść wraz zfinal
aoverride
.