C++에서 C++11의 주요 특징은?
A1: C++11은 2011년에 발표된 C++ 표준으로, 이전 버전들에 비해 언어 기능과 표준 라이브러리에 많은 개선과 새로운 기능을 추가한 업데이트입니다.
Q2: C++11에서 추가된 주요 언어 기능은 무엇인가요?
A2: 주요 언어 기능은 다음과 같습니다:
- 람다 표현식 (Lambda expressions)
- 자동 타입 추론 (auto 키워드)
- 범위 기반 for문 (Range-based for loop)
- nullptr 키워드 (정확한 null 포인터 표현)
- 강력한 열거형 (enum class)
- 이동 시멘틱과 이동 생성자/대입 연산자 (move semantics)
- constexpr 함수 (컴파일 타임 상수 함수)
- 정적 단언문 (static_assert)
- 타입 추론 decltype
- 유니폼 초기화 (brace-init)
- 기본 및 삭제 함수 (default, delete 키워드)
- 가상 함수 오버라이드 명시 (override, final)
- 변동 인자 템플릿 (variadic templates)
Q3: 람다 표현식이란 무엇이며 왜 중요한가요?
A3: 람다 표현식은 익명 함수 객체를 생성하는 문법입니다. 간결하게 콜백 함수나 STL 알고리즘 내에서 함수 객체를 정의할 수 있게 해주어 코드의 가독성과 유연성을 크게 향상시킵니다.
Q4: 이동 시멘틱이란 무엇인가요?
A4: 이동 시멘틱은 리소스 복사 비용을 줄이기 위한 기능으로, 객체의 내부 자원을 "복사"하지 않고 "이동"시키는 개념입니다. 이동 생성자(move constructor)와 이동 대입 연산자가 이를 지원하여 성능 최적화에 도움을 줍니다.
Q5: auto 키워드 사용의 장점은 무엇인가요?
A5: auto 키워드를 사용하면 변수 선언 시 타입을 컴파일러가 자동으로 추론해주어 코드가 더 간결해지고, 복잡한 타입을 명시할 필요가 없어져 개발자가 실수를 줄일 수 있습니다.
Q6: nullptr와 기존 NULL의 차이점은 무엇인가요?
A6: nullptr는 포인터 타입의 null 값을 위한 새로운 리터럴로, 타입이 명확하여 오버로드된 함수 호출 시 모호성을 없애며, 기존의 매크로 NULL은 int 0으로 정의되어 있어 문제가 발생할 수 있습니다.
Q7: enum class가 기존 enum과 다른 점은 무엇인가요?
A7: enum class는 강력한 타입을 가지며 스코프를 갖습니다. 따라서 이름 충돌을 방지하고, 암묵적 정수 변환을 막아 타입 안전성을 제공합니다.
Q8: constexpr 함수는 무엇을 위한 기능인가요?
A8: constexpr 함수는 컴파일 시 실행되는 함수로 상수 표현식을 생성할 때 사용됩니다. 이를 이용하면 실행 시간 비용 없이 상수 값을 생성할 수 있습니다.
Q9: static_assert는 어떻게 사용되나요?
A9: static_assert는 컴파일 시 조건을 검사해 실패하면 컴파일 오류를 발생시킵니다. 템플릿이나 타입 관련 조건을 검증하는 데 유용합니다.
Q10: 범위 기반 for문은 어떤 편의성을 제공하나요?
A10: 범위 기반 for문은 컨테이너 요소를 순회할 때 인덱스 관리를 하지 않아도 되고, 코드가 더 간결하고 명확하게 작성됩니다. 예) `for(auto& elem : container)`
Q11: 가상 함수 오버라이드 명시자(override, final)는 무엇인가요?
A11: override는 가상 함수가 상위 클래스의 메서드를 제대로 오버라이드하는지 컴파일러가 검사하게 하며, final은 더 이상의 오버라이드를 금지하는 키워드입니다.
Q12: 유니폼 초기화란 무엇인가요?
A12: 중괄호 `{}`를 이용해 모든 변수나 객체를 초기화하는 문법으로, 일관된 초기화 방식을 제공하며 narrowing 변환 오류를 방지합니다.
Q13: 변동 인자 템플릿(variadic templates)은 무엇인가요?
A13: 여러 개의 인자를 가변적으로 받는 템플릿으로, 가변 인자를 지원하는 함수 및 클래스 템플릿을 작성할 수 있어 제네릭 프로그래밍을 확장합니다.
---
이상은 C++11의 주요 특징들과 기능들에 대한 FAQ 형식의 상세 설명입니다.
작성자:
김재희 [비회원]
| 작성일자: 1년 전
2024-09-20 17:11:36
조회수: 140 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 140 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.