Jaka jest różnica między funkcją wirtualną a nadpisywaniem funkcji?
Jaka jest różnica między funkcją wirtualną a nadpisywaniem funkcji?

Wideo: Jaka jest różnica między funkcją wirtualną a nadpisywaniem funkcji?

Wideo: Jaka jest różnica między funkcją wirtualną a nadpisywaniem funkcji?
Wideo: Difference between Function Overriding and Function Overloading in C++ -46 2024, Może
Anonim

Funkcje wirtualne nie może być statyczny, a także nie może być przyjacielem funkcjonować innej klasy. Są one zawsze zdefiniowane w klasie bazowej i przesłonięty w klasie pochodnej. Klasa pochodna nie jest obowiązkowa, aby nadpisanie (lub przedefiniuj funkcja wirtualna ), w tym przypadku wersja klasy bazowej funkcjonować jest używany.

Co więcej, jaka jest różnica między funkcją wirtualną a czystą funkcją wirtualną?

Główny różnica pomiędzy ' funkcja wirtualna” i „czysta funkcja wirtualna” ' czy to ' funkcja wirtualna „ma swoją definicję” w klasa bazowa, a także dziedziczące klasy pochodne redefiniują ją. ten czysta funkcja wirtualna nie ma definicji w klasy bazowej, a wszystkie dziedziczące klasy pochodne muszą ją przedefiniować.

Następnie pojawia się pytanie, co to jest nadpisywanie funkcji w C++? Nadpisywanie funkcji C++ . Jeśli klasa pochodna definiuje to samo funkcjonować zgodnie z definicją w swojej klasie bazowej, jest znany jako nadpisywanie funkcji w C++. Służy do uzyskania polimorfizmu w czasie wykonywania. Pozwala to zapewnić konkretną realizację funkcjonować który jest już dostarczany przez jego klasę bazową.

Podobnie ludzie pytają, dlaczego używamy funkcji wirtualnych?

Funkcje wirtualne są używany do obsługi "Polimorfizmu w czasie wykonywania". Kiedy funkcja wirtualna jest wywoływana za pomocą wskaźnika klasy bazowej, kompilator decyduje w czasie wykonywania, która wersja funkcjonować tj. ma zostać wywołana wersja Klasy Bazowej lub nadpisana wersja Klasy Pochodnej. Nazywa się to polimorfizmem w czasie wykonywania.

Czy możesz zastąpić funkcję niewirtualną w C++?

W c++ wszyscy członkowie klasy Funkcje są nie - wirtualny domyślnie. Oni Móc być zrobionym wirtualny używając wirtualny słowo kluczowe w funkcjonować podpis. Jak stwierdzono powyżej Jeśli ten funkcjonować klasy bazowej wirtualny a później funkcjonować klasy pochodnej lub klasy dziecka funkcjonować o tej samej nazwie może zastąpić klasa podstawowa funkcjonować.

Zalecana: