Basic concepts
| General topics | ||||||||||||||||
| Flow control | ||||||||||||||||
| Conditional execution statements | ||||||||||||||||
| Iteration statements (loops) | ||||||||||||||||
|
||||||||||||||||
| Jump statements | ||||||||||||||||
| Functions | ||||||||||||||||
| Function declaration | ||||||||||||||||
| Lambda function expression | ||||||||||||||||
inline
specifier
|
||||||||||||||||
| Dynamic exception specifications ( until C++17* ) | ||||||||||||||||
noexcept
specifier
(C++11)
|
||||||||||||||||
| Exceptions | ||||||||||||||||
| Namespaces | ||||||||||||||||
| Types | ||||||||||||||||
| Specifiers | ||||||||||||||||
|
||||||||||||||||
| Storage duration specifiers | ||||||||||||||||
| Initialization | ||||||||||||||||
| Expressions | ||||||||||||||||
| Alternative representations | ||||||||||||||||
| Literals | ||||||||||||||||
| Boolean - Integer - Floating-point | ||||||||||||||||
| Character - String - nullptr (C++11) | ||||||||||||||||
| User-defined (C++11) | ||||||||||||||||
| Utilities | ||||||||||||||||
| Attributes (C++11) | ||||||||||||||||
| Types | ||||||||||||||||
typedef
declaration
|
||||||||||||||||
| Type alias declaration (C++11) | ||||||||||||||||
| Casts | ||||||||||||||||
| Memory allocation | ||||||||||||||||
| Classes | ||||||||||||||||
| Class-specific function properties | ||||||||||||||||
|
||||||||||||||||
| Special member functions | ||||||||||||||||
|
||||||||||||||||
| Templates | ||||||||||||||||
| Miscellaneous | ||||||||||||||||
이 섹션은 C++ 프로그래밍 언어를 설명할 때 사용되는 특정 용어와 개념에 대한 정의를 제공합니다.
C++ 프로그램은 일반적으로 헤더 파일과 소스 파일로 구성된 텍스트 파일들의 연속이며, 이 파일들은 선언 을 포함합니다. 이들은 번역 과정을 거쳐 실행 가능한 프로그램이 되며, C++ 구현체가 해당 프로그램의 main 함수 를 호출할 때 실행됩니다.
C++ 프로그램에서 특정 단어들은 특별한 의미를 가지며, 이러한 단어들을 키워드(keywords) 라고 합니다. 다른 단어들은 식별자(identifiers) 로 사용될 수 있습니다. 주석(Comments) 은 번역 과정에서 무시됩니다. C++ 프로그램에는 또한 리터럴(literals) 이 포함되어 있으며, 그 안에 있는 문자들의 값은 문자 집합과 인코딩(character sets and encodings) 에 의해 결정됩니다. 프로그램 내의 특정 문자들은 이스케이프 시퀀스(escape sequences) 로 표현되어야 합니다.
C++ 프로그램의 엔티티(entity) 는 값, 객체(objects) , 레퍼런스(references) , 구조화된 바인딩(structured bindings) (C++17부터) , 결과 바인딩(result bindings) (C++26부터) , 함수(functions) , 열거자(enumerators) , 타입(types) , 클래스 멤버, 템플릿(templates) , 템플릿 특수화(template specializations) , 팩(packs) (C++11부터) , 그리고 네임스페이스(namespaces) 입니다. 전처리기 매크로(macros) 는 C++ 엔티티가 아닙니다.
Declarations 는 엔티티를 도입하고, 이를 names 와 연관시키며, 그 속성을 정의할 수 있습니다. 엔티티 사용에 필요한 모든 속성을 정의하는 선언은 definitions 입니다. 프로그램은 odr-used 되는 비인라인 함수나 변수의 정의를 반드시 하나만 포함해야 합니다.
함수의 정의는 일반적으로 statements 의 시퀀스를 포함하며, 그 중 일부는 프로그램이 수행할 계산을 지정하는 expressions 를 포함합니다.
프로그램에서 접하는 이름들은 이름 검색(name lookup) 을 사용하여 해당 이름을 도입한 선언과 연결됩니다. 각 이름은 범위(scope) 라 불리는 프로그램의 특정 부분 내에서만 유효합니다. 일부 이름은 링크age(linkage) 를 가지며, 이는 서로 다른 범위나 번역 단위에서 나타날 때 동일한 개체를 참조하도록 합니다.
C++의 각 객체, 참조, 함수, 표현식은 타입 과 연관되어 있으며, 이는 기본형 , 복합형, 또는 사용자 정의형 이 될 수 있고, 완전형 또는 불완전형 등이 될 수 있습니다.
비정적 데이터 멤버가 아닌 선언된 객체와 선언된 참조는 non-static data members 는 변수 입니다.
참고 항목
|
C 문서
에 대한
기본 개념
|