런타임 플랫폼의 구성 요소 확장
Visual C++는 런타임 프로그램에 대한 프로그램을 도우기 위한 언어 확장 프로그램을 제공 합니다. Visual C++ 구성 요소 확장 (C++/CX) 을 사용하면 Windows 스토어 응용 프로그램 및 네이티브 코드로 컴파일되는 구성 요소를 프로그래밍할 수 있습니다. 비록 Windows 스토어 응용 프로그램을 Windows 런타임 COM 인터페이스에 대한 직접적인 프로그래밍으로 만들 수는 있다 하더라도, C++/CX 사용하면 생성자, 예외 및 기타 최신 C++ 프로그래밍 구문과 함께 작업할 수 있습니다. .NET 플랫폼의 관리된 실행 환경에서 C++ 프로그래밍을 사용하려면, C++/CLI 을 사용합니다.
하나의 확장 집합안의 두 개의 런타임
C++/CX은 C++/CLI의 하위 집합입니다. C++/CX 및 C++/CLI 에 대한 공통된 확장들에서 의미 체계는 공용 언어 런타임(CLR) 또는 Windows 런타임 중 어느것을 대상으로 하는지에 따라 달라 집니다. 응용 프로그램이 Windows 런타임 에서 실행 되도록 컴파일하려면 컴파일러 옵션에서 /ZW 을 지정합니다. CLR에서 실행되도록 컴파일하려면 컴파일러 옵션에서 /clr 을 지정합니다. 이러한 스위치는 Visual Studio 사용하여 프로젝트를 만들 때 자동으로 설정 됩니다.
C++로 Windows 스토어 응용 프로그램을 만드는 방법에 대한 자세한 내용은 Roadmap for Windows Store apps using C++ 을 참조하십시오.
C++/CLI 은 ISO/ANSI C++ 표준을 포함하고 Ecma C++/CLI 표준에 의해 정의됩니다. 자세한 내용은 Visual C++의 .NET 프로그래밍을 참조하십시오.
데이터 형식 키워드
언어 확장은 공백으로 구분된 두 개의 토큰으로 구성 된 키워드인 집계 키워드 를 포함합니다. 토큰은 개별적으로 사용되는 경우 한가지 의미를 가지고, 함께 사용될 때는 다른 의미를 가지게 됩니다. 예를 들어, 단어 "ref"는 일반 식별자이며 "class" 라는 단어는 네이티브 클래스를 선언하는 키워드입니다. 하지만 이 단어이 결합하여 ref class 를 이룰 때, 결과 집계 키워드는 런타임 클래스 엔터티를 선언합니다.
확장명은 상황에 민감한 키워드입니다. 키워드는 이것은 키워드와 해당 문의 위치를 포함하는 문의 종류에 따라 그 상황에 따라 달라지고 컨텍스트에 민감합니다. 예를 들어, "속성" 토큰은 식별자일 수 있고, 특수한 공용 클래스 멤버 종류를 선언할 수 있습니다.
다음 표에서 C++ 언어 확장에서의 키워드를 보여줍니다.
키워드 |
컨텍스트에 민감한 |
용도 |
참고 항목 |
---|---|---|---|
ref class ref struct |
아니요 |
클래스를 선언합니다. |
|
value class value struct |
아니요 |
값 클래스를 선언합니다. |
|
interface class interface struct |
아니요 |
인터페이스를 선언합니다. |
|
enum class enum struct |
아니요 |
열거형을 선언합니다. |
|
property |
예 |
속성을 선언합니다. |
|
delegate |
예 |
대리자를 선언합니다 |
|
event |
예 |
이벤트를 선언합니다. |
지정자를 재정의합니다.
파생에 대한 재정의 동작을 수식하기 위해 다음과 같은 키워드를 사용할 수 있습니다. 비록 new 키워드가 C++ 의 확장명이 아니더라도, 추가 컨텍스트를 사용할 수 있기 때문에 여기 나열 됩니다. 일부 지정자들은 네이티브 프로그래밍에 사용할 수도 있습니다. 자세한 내용은 방법: 네이티브 컴파일에 재정의 지정자를 선언을 참조하십시오.
키워드 |
컨텍스트에 민감한 |
용도 |
참고 항목 |
---|---|---|---|
abstract |
예 |
함수나 클래스는 추상적이라는 것을 나타냅니다. |
|
new |
아니요 |
함수는 기본 클래스 버전의 재정의가 아님을 나타냅니다. |
|
override |
예 |
메서드는 기본 클래스 버전의 재정의 이어야 함을 나타냅니다. |
|
sealed |
예 |
클래스가 기본 클래스로 사용되는 것을 예방합니다. |
제네릭에 대한 키워드
다음 키워드들은 제네릭 형식을 지원하기 위해 추가 되었습니다. 자세한 내용은 제네릭(C++ 구성 요소 확장)을 참조하십시오.
키워드 |
컨텍스트에 민감한 |
용도 |
---|---|---|
generic |
아니요 |
제네릭 형식을 선언합니다. |
where |
예 |
제네릭 형식 매개 변수에 적용되는 제약 조건을 지정합니다. |
기타 다양한 종류의 키워드
다음 키워드는 C++ 확장에 추가 되었습니다.
키워드 |
컨텍스트에 민감한 |
용도 |
참고 항목 |
---|---|---|---|
finally |
예 |
기본 예외는 동작을 처리함을 나타냅니다. |
|
for each, in |
아니요 |
컬렉션의 요소들을 열거합니다. |
|
gcnew |
아니요 |
가비지 수집된 힙에 있는 형식을 할당합니다. delete 대신 new 을 사용합니다. |
|
ref new |
예 |
Windows 런타임 형식을 할당합니다. delete 대신 new 을 사용합니다. |
|
initonly |
예 |
멤버가 선언 또는 정적 생성자 에서만 초기화 될수 있다는 것을 나타냅니다. |
|
literal |
예 |
리터럴 변수를 만듭니다. |
|
nullptr |
아니요 |
핸들 또는 포인터는 개체를 가리키지 않음을 나타냅니다. |
템플릿 구문
다음 언어 구문은 키워드 대신 서식 파일로 구현됩니다. /ZW 컴파일러 옵션을 지정하는 경우, lang 네임 스페이스에 정의됩니다. /clr 컴파일러 옵션을 지정하는 경우, cli 네임 스페이스에 정의됩니다.
키워드 |
용도 |
참고 항목 |
---|---|---|
array |
배열을 선언합니다. |
|
interior_ptr |
(CLR에만 해당) 참조 형식의 데이터를 가리킵니다. |
|
pin_ptr |
(CLR에만 해당) 가비지 수집 시스템을 일시적으로 표시 하려면 CLR 참조 형식을 가리킵니다. |
|
safe_cast |
런타임 형식에 대한 최적의 캐스팅 메서드를 확인 및 실행합니다. |
|
typeid |
(CLR에만 해당) 주어진 형식이나 개체를 나타내는 Type 개체를 검색합니다. |
선언자
다음 형식 선언들은 할당된 개체의 삭제 및 수명을 자동으로 관리 하도록 런타임에 지시합니다.
연산자 |
용도 |
참고 항목 |
---|---|---|
^ |
개체에 대한 핸들을 선언합니다. 이것은 더 이상 사용할 수 없을 때 자동으로 삭제되는 Windows 런타임 또는 CLR 개체에 대한 포인터 입니다. |
|
% |
추적 참조를 선언합니다. 이것은 더 이상 사용할 수 없을 때 자동으로 삭제되는 Windows 런타임 또는 CLR 개체에 대한 참조 입니다. |
추가 구문 및 관련된 항목
이 부문에서는 추가 프로그래밍 구성 및 CLR에 관련된 항목을 나열합니다.
항목 |
설명 |
---|---|
(Windows 런타임 and CLR) 키워드를 식별자로 사용할 수 있습니다. |
|
(Windows 런타임 and CLR) 인수의 변수 번호를 취하는 함수를 사용할 수 있습니다. |
|
C++ 정수 계열 형식 대신에 사용되는 CLR 형식이 나와 있습니다. |
|
appdomain __declspec 한정자 |
appdomain당 정적 및 전역변수를 지정하는 __declspec 한정자. |
C 스타일 캐스트가 해석되는 방법을 보여줍니다. |
|
__clrcall호출 규칙 |
CLR 규격 호출 규칙을 나타냅니다. |
__cplusplus_cli |
|
사용자 고유의 CLR 특성을 정의하는 방법을 보여줍니다. |
|
예외 처리에 대한 개요를 제공합니다. |
|
멤버 함수가 수 멤버를 재정의 하는 방법을 보여줍니다. |
|
클라이언트 어셈블리를 어셈블리 구성 요소에 있는 모든 형식에 액세스할 수 있는 방법에 대해 설명 합니다. |
|
값 형식이 boxed된 상태를 보여줍니다. |
|
컴파일 시간에 형식의 특성을 검색하는 방법에 대해 설명합니다. |
|
관리되는, 관리되지 않는 pragmas |
관리 및 관리되지 않은 함수들이 동일한 모듈에 공존하는 방법에 대해 보여줍니다. |
프로세스 __declspec 한정자 |
appdomain당 정적 및 전역변수를 지정하는 __declspec 한정자. |
런타임 형식 정보의 CLR 버전을 보여줍니다. |
|
문자열 리터럴에서 String 로의 컴파일러 변환에 대해 설명합니다. |
|
운송 어셈블리에서 다른 어셈블리로의 형식의 이동을 사용하여 클라이언트 코드가 다시 컴파일될 필요가 없도록 할 수 있습니다. |
|
사용자 정의 특성을 보여줍니다. |
|
외부 어셈블리를 가져옵니다. |
|
/doc(문서 주석 처리)(C/C++) 를 사용하여 XML 기반 코드 설명서를 설명합니다. |