Jak skonfigurować klasę reprezentującą interfejs? Czy to tylko abstrakcyjna klasa
Jak skonfigurować klasę reprezentującą interfejs? Czy to tylko abstrakcyjna klasa
Moje podstawowe zrozumienie jest takie, że nie ma implementacji czystej funkcji wirtualnej, jednak powiedziano mi, że może istnieć implementacja czystej funkcji wirtualnej. class A { public: virtual void f() = 0; }; void A::f() { cout<<"Test"<<endl; } Czy powyższy kod jest w...
Czy źle jest pisać: class A { public: virtual ~A() = 0; }; dla abstrakcyjnej klasy bazowej? Przynajmniej to kompiluje się w MSVC ... Czy ulegnie awarii w czasie
Rozumiem potrzebę posiadania wirtualnego destruktora. Ale dlaczego potrzebujemy czystego wirtualnego destruktora? W jednym z artykułów C ++ autor wspomniał, że używamy czystego wirtualnego destruktora, gdy chcemy stworzyć abstrakcję klasy. Ale możemy uczynić klasę abstrakcyjną, sprawiając, że...
Zawsze deklarujemy czystą funkcję wirtualną jako: virtual void fun () = 0 ; To znaczy, zawsze jest przypisane do 0. Rozumiem, że ma to na celu zainicjowanie wpisu vtable dla tej funkcji na NULL, a każda inna wartość tutaj powoduje błąd czasu kompilacji. Czy to rozumienie jest poprawne, czy...
Czasami zauważam awarie programów na moim komputerze z błędem: „czyste wywołanie funkcji wirtualnej”. Jak te programy nawet kompilują się, gdy nie można utworzyć obiektu z klasy
Dzisiaj czytałem o czystej funkcji, pomyliłem się z jej użyciem: O funkcji mówi się, że jest czysta, jeśli zwraca ten sam zestaw wartości dla tego samego zestawu danych wejściowych i nie ma żadnych obserwowalnych skutków ubocznych. np. strlen()jest czystą funkcją, podczas gdy rand()jest...