Мне просто интересно, какие именно функции должен предоставлять язык или библиотека, чтобы его можно было определить как «объектно-ориентированный». Является ли объектная ориентация чем-то, чего можно более или менее достичь в любом языке программирования общего назначения с приличными функциями? Или это может быть достигнуто только в тех языках, которые специально рекламируют, что они поддерживают объектно-ориентированное программирование?
Например, посмотрите на следующий код C:
SDL_Surface* screen = SDL_SetVideoMode( 640, 480, 16, SDL_HWSURFACE);
SDL_FreeSurface( screen );
или код, обсуждаемый здесь .
Теперь вышеприведенный код не использует наследование, полиморфизм времени выполнения (?), Виртуальные функции и т. Д. Но мне кажется, что это ООП.
Является ли Object-Orientation простым написанием кода, основанного на создаваемых и разрушаемых структурах данных, таких как объекты, классы, структуры и т. Д., Для которых не требуется какой-либо особый шаблон или функции, предоставляемые языком программирования или библиотекой ?
1+2
действительно является объектно-ориентированным. Это конструктор, который строит новый объект из двух существующих объектов. Использование примеров кода ничего не показывает.