Zastanawiam się tylko, jakie dokładnie funkcje musi zapewnić język lub biblioteka, aby można było ją zdefiniować jako obiektową. Czy orientacja obiektowa jest czymś, co można mniej więcej osiągnąć w dowolnym języku programowania ogólnego przeznaczenia o przyzwoitych funkcjach? A może jest to coś, co można osiągnąć tylko w językach, które reklamują wsparcie programowania obiektowego?
Na przykład spójrz na następujący kod C:
SDL_Surface* screen = SDL_SetVideoMode( 640, 480, 16, SDL_HWSURFACE);
SDL_FreeSurface( screen );
lub kod omówiony tutaj .
Teraz powyższy kod nie korzysta z dziedziczenia, polimorfizmu środowiska uruchomieniowego (?), Funkcji wirtualnych itp. Ale wydaje mi się, że jest to raczej OOP.
Czy obiektowa orientacja to po prostu pisanie kodu opartego na tworzalnych i podlegających zniszczeniu strukturach danych, takich jak obiekty, klasy, struktury itp., Które nie wymagają żadnego specjalnego wzorca lub funkcji zapewnianych przez język programowania lub bibliotekę ?
1+2
tak naprawdę jest on zorientowany obiektowo. Jest to konstruktor, który buduje nowy obiekt z dwóch istniejących obiektów. Korzystanie z próbek kodu niczego nie ujawnia.