object oriented programming c
Wprowadzenie do programowania obiektowego w C ++.
W tym samouczku rozpoczynamy serię samouczków, aby nauczyć się C ++ jako języka programowania zorientowanego obiektowo.
Jak wiemy, przed programowaniem obiektowym (OOP) programy były pisane przy użyciu języków proceduralnych. Języki proceduralne akcentują funkcje. Większe problemy są dzielone na mniejsze podproblemy i zapisywane jako funkcje.
=> Zobacz tutaj, aby poznać pełną listę samouczków języka C ++.
Języki proceduralne nie zwracały uwagi na dane. W efekcie możliwość nieskutecznego rozwiązania problemu była wysoka. Ponadto, ponieważ dane były prawie zaniedbane, bezpieczeństwo danych było łatwo naruszane.
Wszystkie te wady programowania proceduralnego zostały przezwyciężone dzięki programowaniu obiektowemu.
W tym samouczku omówimy podstawy programowania obiektowego i w skrócie wszystkie funkcje OOP.
Czego się nauczysz:
- Programowanie obiektowe w C ++
- Dlaczego C ++ jest częściowym OOP?
- Funkcje OOP
- Zalety OOP
- Wniosek
- rekomendowane lektury
Programowanie obiektowe w C ++
Programowanie obiektowe obraca się wokół danych. Główną jednostką programowania OOP jest obiekt. Obiekt jest reprezentacją jednostki czasu rzeczywistego i składa się z danych oraz metod lub funkcji, które operują na danych. W ten sposób dane i funkcje są ściśle powiązane, a bezpieczeństwo danych jest zapewnione.
W OOP wszystko jest reprezentowane jako obiekt, a gdy programy są wykonywane, obiekty oddziałują ze sobą, przekazując komunikaty. Obiekt nie musi znać szczegółów implementacji innego obiektu do komunikacji.
Oprócz obiektów, OOP obsługuje różne funkcje, które są wymienione poniżej:
- Zajęcia
- Kapsułkowanie
- Abstrakcja
- Dziedzictwo
- Wielopostaciowość
Korzystając z OOP, piszemy programy przy użyciu klas i obiektów, wykorzystując powyższe cechy. Mówi się, że język programowania jest prawdziwym językiem programowania zorientowanym obiektowo, jeśli wszystko, co reprezentuje, używa obiektu. Smalltalk to jeden język, który jest czysto obiektowym językiem programowania.
Z drugiej strony mówi się, że języki programowania, takie jak C ++ i Java, są częściowo zorientowanymi obiektowo językami programowania.
Dlaczego C ++ jest częściowym OOP?
Język C ++ został zaprojektowany z głównym zamiarem wykorzystania funkcji obiektowych w języku C.
Chociaż język C ++ obsługuje funkcje OOP, takie jak klasy, obiekty, dziedziczenie, hermetyzacja, abstrakcja i polimorfizm, istnieje kilka powodów, dla których C ++ jest klasyfikowany jako częściowy język programowania obiektowego.
pytania do wywiadu loadrunner i odpowiedzi dla doświadczonych
Poniżej przedstawiamy kilka z tych powodów:
# 1) Tworzenie klasy / obiektów jest opcjonalne
W C ++ główna funkcja jest obowiązkowa i zawsze znajduje się poza klasą. Dlatego możemy mieć tylko jedną główną funkcję w programie i możemy obejść się bez klas i obiektów.
To pierwsze naruszenie języka Pure OOP, w którym wszystko jest przedstawiane jako obiekt.
# 2) Zastosowanie zmiennych globalnych
C ++ zawiera koncepcję zmiennych globalnych, które są zadeklarowane poza programem i mogą być dostępne dla każdej innej jednostki programu. To narusza hermetyzację. Chociaż C ++ obsługuje hermetyzację w odniesieniu do klas i obiektów, nie zajmuje się tym w przypadku zmiennych globalnych.
# 3) Obecność funkcji znajomego
C ++ obsługuje zaprzyjaźnioną klasę lub funkcję, której można użyć do uzyskania dostępu do prywatnych i chronionych członków innych klas, czyniąc z nich przyjaciół. To kolejna cecha C ++, która narusza paradygmat OOP.
Podsumowując, chociaż C ++ obsługuje wszystkie wspomniane powyżej funkcje OOP, zapewnia również funkcje, które mogą działać jako obejście tych funkcji, dzięki czemu możemy się bez nich obejść. To sprawia, że C ++ jest częściowo zorientowanym obiektowo językiem programowania.
Funkcje OOP
Tutaj przedstawimy różne funkcje OOP, które są używane do programowania.
Klasy i obiekty
Obiekt jest podstawową jednostką w programowaniu obiektowym. Obiekt zawiera dane i metody lub funkcje, które działają na tych danych. Obiekty zajmują miejsce w pamięci.
Z drugiej strony klasa jest planem obiektu. I odwrotnie, obiekt można zdefiniować jako instancję klasy. Klasa zawiera szkielet obiektu i nie zajmuje miejsca w pamięci.
Weźmy Przykład obiektu samochodowego. Obiekt samochodowy o nazwie „Maruti” może zawierać takie dane, jak kolor; marka, model, ograniczenie prędkości itp. oraz funkcje takie jak przyspieszenie. Definiujemy kolejny obiekt „ford”. Może mieć podobne dane i funkcje, jak w przypadku poprzedniego obiektu, a także kilka innych dodatków.
Podobnie, możemy mieć wiele obiektów o różnych nazwach, które mają podobne dane i funkcje oraz pewne drobne różnice.
Dlatego zamiast definiować te podobne dane i funkcje w tych różnych obiektach, definiujemy schemat tych obiektów, który jest klasą o nazwie Car. Każdy z powyższych obiektów będzie egzemplarzem samochodu tej klasy.
najlepsi twórcy gier
Abstrakcja
Abstrakcja to proces ukrywania przed użytkownikiem nieistotnych informacji. Na przykład podczas jazdy samochodem najpierw uruchamiamy silnik wkładając kluczyk. Nie jesteśmy świadomi procesu, który przebiega w tle podczas uruchamiania silnika.
Korzystając z abstrakcji w programowaniu, możemy ukryć przed użytkownikiem niepotrzebne szczegóły. Używając abstrakcji w naszej aplikacji, nie ma to wpływu na użytkownika końcowego, nawet jeśli zmienimy wewnętrzną implementację.
Kapsułkowanie
Hermetyzacja to proces, w którym dane i metody lub funkcje na nich działające są łączone razem. W ten sposób dane nie są łatwo dostępne dla świata zewnętrznego. W OOP osiągamy hermetyzację, czyniąc członków danych prywatnymi i mając publiczne funkcje dostępu do tych członków danych.
Dziedzictwo
Korzystanie z obiektu dziedziczenia jednej klasy może dziedziczyć lub nabywać właściwości obiektu innej klasy. Dziedziczenie zapewnia możliwość ponownego wykorzystania kodu.
W związku z tym możemy zaprojektować nową klasę, uzyskując właściwości i funkcjonalność innej klasy i w tym procesie nie musimy modyfikować funkcjonalności klasy nadrzędnej. Dodajemy tylko nową funkcjonalność do klasy.
Wielopostaciowość
Polimorfizm oznacza wiele form.
Polimorfizm jest ważną cechą OOP i jest zwykle implementowany jako przeciążenie operatora lub przeciążenie funkcji. Przeciążanie operatorów to proces, w którym operator zachowuje się inaczej w różnych sytuacjach. Podobnie w przypadku przeciążania funkcji ta sama funkcja zachowuje się różnie w różnych sytuacjach.
Dynamiczne wiązanie
OOP obsługuje dynamiczne wiązanie, w którym wywołanie funkcji jest rozwiązywane w czasie wykonywania. Oznacza to, że kod do wykonania w wyniku wywołania funkcji jest określany w czasie wykonywania. Funkcje wirtualne są przykładem dynamicznego wiązania.
Przekazywanie wiadomości
W OOP obiekty komunikują się ze sobą za pomocą komunikatów. Kiedy obiekty się komunikują, informacje są przekazywane tam iz powrotem między obiektami. Komunikat zazwyczaj składa się z nazwy obiektu, nazwy metody i rzeczywistych danych, które mają być wysłane do innego obiektu.
Zalety OOP
Omówmy niektóre zalety OOP.
# 1) Możliwość ponownego użycia
OOP pozwala na ponowne wykorzystanie istniejącego kodu poprzez dziedziczenie. Z łatwością możemy pozyskać istniejącą funkcjonalność i ulepszyć ją bez konieczności ponownego przepisywania kodu. Powoduje to mniej nadęty kod.
# 2) Modułowość
Ponieważ modularyzujemy program w OOP, łatwo jest zmodyfikować program lub rozwiązać jego problemy, jeśli wystąpi problem lub ma zostać dodana nowa funkcja lub ulepszenie. Modularyzacja pomaga również w klarowności kodu i czyni go bardziej czytelnym.
# 3) Elastyczność
OOP pomaga nam w elastycznym programowaniu przy użyciu funkcji polimorfizmu. Ponieważ polimorfizm przybiera wiele form, możemy mieć operatory lub funkcje, które będą działać z wieloma obiektami, a tym samym uchronią nas przed pisaniem różnych funkcji dla każdego obiektu.
# 4) Konserwowalność
Utrzymywanie kodu jest łatwiejsze, ponieważ łatwo jest dodawać nowe klasy, obiekty itp. Bez dużej przebudowy lub zmian.
# 5) Ukrywanie danych i informacji
OOP pomaga nam w ukrywaniu danych, chroniąc w ten sposób informacje przed wyciekiem. Tylko te dane, które są wymagane do sprawnego działania programu, są ujawniane użytkownikowi poprzez ukrycie istotnych szczegółów.
Wniosek
OOP to najważniejszy i najbardziej elastyczny paradygmat współczesnego programowania. Jest szczególnie przydatny w modelowaniu rzeczywistych problemów i dlatego jest bardzo popularny.
Omówiliśmy różne funkcje OOP w tym samouczku. Idąc dalej, szczegółowo omówimy wszystkie te funkcje.
Następny temat z tej serii „OOP z C ++” skupi się w szczegółach na klasach i obiektach.
=> Kliknij tutaj, aby zapoznać się z serią szkoleń Absolute C ++.
rekomendowane lektury
- OOP Java: Wprowadzenie do programowania obiektowego w Javie
- Typy danych C ++
- 10 najlepszych narzędzi do nauki o danych w 2021 r., Aby wyeliminować programowanie
- Abstrakcja danych w C ++
- Wprowadzenie do struktur danych w C ++
- Samouczek potoków w systemie Unix: Potoki w programowaniu w systemie Unix
- Samouczek QTP nr 8 - Dowiedz się o trybach nagrywania QTP, szpiegowaniu obiektów i repozytoriach obiektów
- 70+ NAJLEPSZYCH samouczków C ++ do nauki programowania w C ++ ZA DARMO