Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++11에 도입된 새로운 변경 사항은 무엇입니까?

<시간/>

C++11은 표준 C++ 언어의 버전입니다. 2011년 8월 12일 ISO(국제표준화기구)의 승인을 받은 후 C++14 및 C++17이 승인되었습니다. C++11은 핵심 언어에 몇 가지 추가 기능을 제공합니다.

C++11에 도입된 몇 가지 새로운 변경 사항이 있습니다 -

  • nullptr − 이전 nullptr에서는 0이 값이었으며 암시적으로 정수 값으로 변환되는 단점이 있었습니다. 널 포인터 리터럴은std::nullptr_t로 표시됩니다. 이 nullptr에는 암시적 변환이 없습니다.

  • 람다 − 람다 식을 사용하여 로컬에서 함수를 정의할 수 있습니다. 익명 함수를 람다라고 합니다. 함수 개체 std::function이 예상되는 모든 곳에서 람다 식을 사용할 수 있습니다.

  • 스마트 포인터 − 스마트 포인터 auto_ptr은 유일한 스마트 포인터였으며 이제는 더 이상 사용되지 않습니다. C++11에는 세 가지 다른 스마트 포인터가 추가되었습니다. 즉 shared_ptr,unique_ptr 및 weak_ptr입니다.

  • 자동 − 이전 버전에서는 객체의 유형을 지정해야 했지만 C++11에서는 유형을 지정할 필요가 없으므로 유형을 지정하지 않고 변수를 직접 선언할 수 있습니다.

  • 재정의 및 최종 − 버전 C++11에는 두 개의 새로운 특수 식별자, 즉 override와 final이 도입되었습니다. 재정의는 메서드가 기본 클래스의 가상 메서드를 재정의해야 함을 나타냅니다. 반면에 final은 파생 클래스가 가상 메서드를 재정의하지 않아야 함을 나타냅니다.

  • 삭제 및 기본값 설정 기능 − 삭제된 기능은 객체 복사 방지에 유용합니다. 복사를 비활성화하려면 " =delete; " 사용. 기본 함수는 함수의 기본 구현을 생성하도록 컴파일러에 지시하고 " =default;"는 기본 함수에 사용됩니다.

  • 범위 기반 for 루프 − C++11은 컬렉션 반복을 위한 범위 기반 for 루프를 도입했습니다. 이제 C-배열처럼 반복할 수 있습니다. 반복하는 'foreach' 패러다임을 지원합니다.

  • 강력한 형식의 열거형 − 기존 열거형에서는 주변 범위에서 열거자를 내보내는 데 사용되었습니다. "enum class" 키워드로 지정됩니다. 주변 범위에서 열거자를 내보내지 않습니다.

  • Static_assert 및 유형 특성 - 컴파일 시 assertion 체크를 한다. 어설션이 true이면 아무 것도 표시하지 않고 그렇지 않으면 오류 메시지를 표시합니다.

  • 새로운 C++ 알고리즘 − C++11 표준 라이브러리는 all_of(), any_of 및 none_of()와 같은 일부 연산과 함께 새로운 알고리즘을 도입했습니다.