C++: 두 판 사이의 차이

(C++11추가)
잔글편집 요약 없음
11번째 줄: 11번째 줄:


=== C++98 ===
=== C++98 ===
어떤 컴파일러를 사용하든 같은 결과를 보장하기 위해 [[ISO]]에서 제정한 최초의 [[C++]] 표준으로, [http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?ics1=35&ics2=60&ics3=&csnumber=50372|ISO/IEC 14882:1998] 라는 정식 명칭을 가지고 있다. C++98부터 namespace 개념이 추가되어 표준 라이브러리는 std 네임스페이스에 속하게 되었으며, 기존 라이브러리와 혼동을 피하기 위해 이때부터 표준 라이브러리의 헤더에서 .h가 빠지게 되었다.
어떤 컴파일러를 사용하든 같은 결과를 보장하기 위해 [[ISO]]에서 제정한 최초의 [[C++]] 표준으로, [http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?ics1=35&ics2=60&ics3=&csnumber=50372 ISO/IEC 14882:1998] 라는 정식 명칭을 가지고 있다. C++98부터 namespace 개념이 추가되어 표준 라이브러리는 std 네임스페이스에 속하게 되었으며, 기존 라이브러리와 혼동을 피하기 위해 이때부터 표준 라이브러리의 헤더에서 .h가 빠지게 되었다.


=== C++03 ===
=== C++03 ===

2015년 4월 17일 (금) 14:06 판

C++ / 씨 플러스 플러스, 씨쁠쁠등으로 읽기도 한다.

C++C 언어에서 파생된 프로그래밍 언어 중 하나로, 비야네 스트롭스트룹(Bjarne Stroustrup)이 만든 객체지향 언어이다. 초창기 코드 네임C with Classes[1]으로. 코드 네임에서 볼 수 있듯 C 언어객체지향 개념을 더하는 것이 시작이었다. 문법은 C 언어와 상당히 유사하지만 실질적으론 다른 언어로서 호환되지 않는다.

특징

버전

The C++ Programming Language

C++ 2.0

C++98

어떤 컴파일러를 사용하든 같은 결과를 보장하기 위해 ISO에서 제정한 최초의 C++ 표준으로, ISO/IEC 14882:1998 라는 정식 명칭을 가지고 있다. C++98부터 namespace 개념이 추가되어 표준 라이브러리는 std 네임스페이스에 속하게 되었으며, 기존 라이브러리와 혼동을 피하기 위해 이때부터 표준 라이브러리의 헤더에서 .h가 빠지게 되었다.

C++03

C++TR1

C++11

초기 개발 명은 C++0X라고 하여 10년도 이전에 나올 것이라 예상되었으나 때를 한참 넘겨 2011년에 공개되었다. C++11에서는 다른 프로그래밍 언어에서 사용되던 편리한 문법이 많이 추가 되었다

내역

  • 기존의 auto예약어의 기능이 없어지고 변수 선언시 초기화 값에 따라 변수형을 추론하여 생략을 가능하게 하였다
auto var = 1; //이 경우 var변수의 변수형은 int형이 된다.
auto var2 = new Person();//이 경우 var2의 변수형은 Person*이 된다.
  • 정적 배열, vector, list클래스의 경우 for문에서 자바의 for문과 같이 사용할 수 없다
int a[] = {1,2,3,4,5};
for(auto & it : a)
{
    std::cout<<it<<endl;
}
  • std::thread클래스가 추가되었고 멀티 스레딩을 지원하는 메모리 모델로 수정되었다. 또한 동기화 지원을 위한 std::mutex가 추가되었다.
  • 레퍼런스 카운드을 이용한 메모리 클래스인 std::shared_ptr와 std::weak_ptr가 추가되었다. 또한 std::auto_ptr은 비추천으로 바뀌었다.
  • 람다식및 익명함수가 추가되었다.
  • 기존의 함수포인터를 대체하는 std::function클래스가 추가되었다.
  • 가비지 컬렉션에 대한 내용이 표준에 추가되었다, 하지만 어떠한 컴파일러도 구현하지 않았다.

C++14

C++14는 C++11의 마이너 업그래이드이다.

C++17 (예정)

주석

  1. 위키백과나 다른 곳에서는 원래 명칭이 C with Classes라고 소개되어 있으나, 비야네 스트롭스트룹은 C++을 처음에 C with Classes로 발표하지 않았다. 윈도우 XP의 코드 네임은 Windows Whistler였지만, 이 이름은 내부에서만 쓰는 이름이었다. 즉, 발표한적도 없는 C with Classes를 원래 이름이라고 불리우는건 잘못된 것.

참고 자료