차이점

이 페이지의 선택한 이전 버전과 현재 버전 사이의 차이점을 보여줍니다.

차이 보기로 연결

cpp [2010-07-12 23:52]
lifthrasiir +분류
cpp [2011-12-26 05:53] (현재)
lifthrasiir 링크 틀렸다!
줄 1: 줄 1:
 ====== C++ ====== ====== C++ ======
  
-[[Bjarne Stroustrup]]이 [[C]]에 [[SIMULA]] 스타일의 [[객체지향]] 기능을 추가한다고 삽질하다가 [[흑막]]이 되어 버린 [[프로그래밍언어]]. [[ISO]]/IEC 14883으로 [[표준화]]되어 있다.+[[Bjarne Stroustrup]]이 [[C언어]]에 [[SIMULA]] 스타일의 [[객체지향]] 기능을 추가한다고 삽질하다가 [[흑막]]이 되어 버린 [[프로그래밍언어]]. [[ISO]]/IEC 14883으로 [[표준화]]되어 있다.
  
 C++를 객체지향 프로그래밍 언어라고 부를 수 없는 가장 큰 이유는 C++의 객체지향은 다른 객체지향 언어들에 비해서 그렇게 좋은 편이 아니기 때문(...)인데 이는 C랑 소스 레벨에서 호환되겠다는 <del>당치도 않은</del> 목표 때문에 동적인 구현이 필요한 많은 기능을 빼먹은 탓이다. 대신 C++는 [[컴파일시간]]에 최대한 많은 걸 하기 위해서 [[제네릭프로그래밍]] 및 [[템플릿]] [[메타프로그래밍]]을 강력하게 지원하기 때문에 결과적으로 언어 설계가 특이하게 나와 버렸다. C++를 객체지향 프로그래밍 언어라고 부를 수 없는 가장 큰 이유는 C++의 객체지향은 다른 객체지향 언어들에 비해서 그렇게 좋은 편이 아니기 때문(...)인데 이는 C랑 소스 레벨에서 호환되겠다는 <del>당치도 않은</del> 목표 때문에 동적인 구현이 필요한 많은 기능을 빼먹은 탓이다. 대신 C++는 [[컴파일시간]]에 최대한 많은 걸 하기 위해서 [[제네릭프로그래밍]] 및 [[템플릿]] [[메타프로그래밍]]을 강력하게 지원하기 때문에 결과적으로 언어 설계가 특이하게 나와 버렸다.
줄 9: 줄 9:
 ===== 버전들 ===== ===== 버전들 =====
  
-현재 쓰는 C++는 1998년에 표준화되어 ISO/IEC 14883:1998(흔히 C++98)이 되었다. (이전의 C++ 구현은 벤더에 따라 천차만별이었고 [[STL]]은 커녕 심지어 [[iostream]] 라이브러리가 없기도 했다.) 여기에 수정판으로 ISO/IEC 14883:2003(흔히 C++03)이 있긴 하지만 보통 구분은 별로 안 한다.+현재 널리 는 C++는 1998년에 표준화되어 ISO/IEC 14883:1998(흔히 C++98)이 되었다. (이전의 C++ 구현은 벤더에 따라 천차만별이었고 [[STL]]은 커녕 심지어 [[iostream]] 라이브러리가 없기도 했다.) 여기에 수정판으로 ISO/IEC 14883:2003(흔히 C++03)이 있긴 하지만 보통 구분은 별로 안 한다.
  
-다음 C++ 버전은 [[2010년]] 현재 계획대로라면 ISO/IEC 14883:2011(흔히 [[Cpp0x]])이 될 예정이다. 물론 약자에서 알 수 있듯 원래는 2009년에 오려고 했만 망한 걸 보면 [[2012년]]에 나올도 모른다. 에구.+C++98 및 C++03의 다음 버전은 ISO/IEC 14883:2011(흔히 C++0x 또는 [[Cpp11]])으로, 2011년 10월에 표준화가 완료되었다. 표준과는 별개로 현재 구현체의 지원은 가지각색인데(당연히 지 몇 년 안 되었으니...), 가장 쉽고 눈에 띄는 [[익명함수]] 문법은 이미 많은 최신 구현체(대표적으로 [[gcc]]와 [[MSVC]])서 원하여 별 문제 없이 쓸 수 있다. 다른 것들은 좀 더 기다려야 할 듯.
  
 {{tag>프로그래밍언어}} {{tag>프로그래밍언어}}

도쿠위키DokuWiki-custom(rev 9085d92e02)을 씁니다.
마지막 수정 2011-05-30 18:25 | 외부 편집기