언어 또는 라이브러리가 '객체 지향'으로 정의하기 위해 제공해야하는 기능이 정확히 무엇인지 궁금합니다. 객체 지향 은 적절한 기능을 가진 범용 프로그래밍 언어 에서 어느 정도 달성 될 수 있습니까? 아니면 객체 지향 프로그래밍을 지원한다고 구체적으로 광고하는 언어로만 달성 할 수 있습니까?
예를 들어 다음 C 코드를보십시오.
SDL_Surface* screen = SDL_SetVideoMode( 640, 480, 16, SDL_HWSURFACE);
SDL_FreeSurface( screen );
또는 여기에서 논의 된 코드 .
이제 위의 코드는 상속, 런타임 다형성 (?), 가상 함수 등을 사용하지 않습니다. 그러나 그것은 거의 OOP로 보입니다.
Object-Orientation은 프로그래밍 언어 또는 라이브러리 에서 제공하는 특별한 패턴이나 기능이 필요하지 않은 객체, 클래스, 구조체 등과 같이 생성 가능하고 파괴 가능한 데이터 구조를 기반으로 코드를 작성하는 것 입니까?
1+2
실제로 객체 지향적입니다. 기존의 두 개체에서 새 개체를 작성하는 생성자입니다. 코드 샘플을 사용하면 아무것도 드러나지 않습니다.