To obiektowy język programowania C

To obiektowy język programowania C
Język programowania C istnieje od ponad czterech dekad i jest szeroko stosowany w wielu aplikacjach, od systemów wbudowanych po rozwój oprogramowania na dużą skalę. Debata na temat tego, czy język programowania C jest zorientowany na obiekt trwa od pojawienia się Programowanie obiektowe (OOP) w latach 80. Podczas gdy niektórzy twierdzą, że C nie jest zorientowany na obiekt, inni twierdzą, że można go użyć do pisania Kod obiektowy. Ten esej zbada oba argumenty i przedstawi wnioski.

Co to jest programowanie obiektowe?

Na początek, najpierw zdefiniujmy Programowanie obiektowe. Koncepcja programowania znana jako Oop Dzieli dane i logikę na jednostki wielokrotnego użytku, znane jako obiekty. Te obiekty zawierają dane (zwane właściwościami lub atrybutami) i funkcje (zwane metodami), które mogą manipulować i oddziaływać z danymi. W Oop, Nacisk kładziony jest na tworzenie dobrze zdefiniowanych i zamkniętych obiektów, które mogą się ze sobą komunikować w celu wykonania zadania.

To obiektowy język programowania C?

Niestety język programowania C działa raczej jako język proceduralny niż obiektowy. Biorąc to pod uwagę, możemy teraz ocenić przyczyny.

1: Zajęcia

Pomysł zajęcia jest jedną z głównych koncepcji OOP. A klasa opisuje atrybuty i metody należące do obiektu i służy jako plan budowania obiektów. Niestety, C nie ma wbudowanej metody klasa definicja. Jednak nadal można stworzyć struktura klasowa Korzystanie z struktur danych i funkcji danych. Struktury te mogą przechowywać dane, a funkcje mogą wykonywać operacje tych danych, podobnie jak klasa.

2: enkapsulacja

Kolejny znaczący aspekt Oop to dane kapsułkowanie. Kapsułkowanie odnosi się do idei ukrywania danych i ograniczenia dostępu do nich, aby upewnić się, że jest one modyfikowane tylko w kontrolowany sposób. C ma NIE Wbudowane mechanizmy kapsułkowanie, ale można go ręcznie zaimplementować przy użyciu technik takich jak struktura i wskaźniki.

3: Dziedzictwo

Zdolność klasy do dziedziczyć Atrybuty i funkcje z innej klasy to kolejny kluczowy aspekt OOP. Chociaż C nie ma wsparcia kompilatora dla mechanizmów dziedziczenia, dziedzictwo mogą odbywać się z wskaźnikami i strukturami, umieszczając dziedziczny Struktura atrybutów klasy jako pierwszy członek struktury atrybutów pochodnej klasy.

4: Polimorfizm

C również brak wbudowana funkcja dla wielopostaciowość, który pozwala obiektom na podejmowanie różnych kształtów i typów. C może jednak osiągnąć jakąś formę wielopostaciowość deklarując wskaźniki, które wskazują na funkcje po użyciu struktur.

Wniosek

Podczas gdy C nie Posiadać wbudowany wsparcie dla zorientowany na obiekt Funkcje programowania, takie jak zajęcia, kapsułkowanie, dziedzictwo, I wielopostaciowość, Nadal można napisać zorientowany na obiekt Kod wykorzystujący struktury i funkcje danych C. W rezultacie dokładne jest argumentowanie, że C jest językiem programującym, który obsługuje programowanie obiektowe, ale nie jest on wyłącznie jednym. Warto jednak zauważyć, że użycie c for Oop wymaga bardziej ręcznego podejścia w porównaniu z językami specjalnie zaprojektowanymi Oop, takie jak Java lub Python.