기본 식

기본 식에는 좀 더 복잡 한 식의 구성 요소입니다.리터럴, 이름 및 범위 결정 연산자가 정규화 된 이름 들은 (::).기본 식은 다음 형식 중 하나를 가질 수 있습니다.

literal
this
:: name
name 
( expression )

A 리터럴 상수 기본 식입니다.형식 사양은 해당 양식에 따라 달라 집니다.참조 하십시오 리터럴 리터럴을 지정 하는 방법에 대 한 자세한 정보입니다.

해당 키워드는 클래스 개체에 대 한 포인터입니다.비정적 멤버 함수 안에서 지점 함수를 호출 하는 데 사용 된 클래스의 인스턴스를 사용할 수 있습니다.해당 클래스 멤버 함수의 본문 외부 키워드를 사용할 수 없습니다.

종류는 포인터입니다 type*** const** (위치 type 클래스 이름입니다) 수정 되지 않은 함수 내에서 포인터. 다음 예제 함수 선언 하 고 형식 멤버를 표시 :

// expre_Primary_Expressions.cpp
// compile with: /LD
class Example
{
public:
    void Func();          //  * const this
    void Func() const;    //  const * const this
    void Func() volatile; //  volatile * const this
};

참조 하십시오 this이 포인터의 형식 형식을 수정 하는 방법에 대 한 자세한 내용은 포인터입니다.

범위 결정 연산자 (::) 그 뒤 기본 식 이름을 구성 합니다.이러한 이름은 전역 범위, 멤버 이름이 아닌 이름 이어야 합니다.이 식의 형식 이름이 선언에 의해 결정 됩니다.L-값이 (즉, 할당 연산자 식 왼쪽에 나타날 수 있습니다) 선언 이름 경우는 l-값입니다.현재 범위에 이름이 숨겨져 있는 경우에 범위 결정 연산자는 전역 이름을 참조 될 수 있습니다.참조 하십시오 범위 범위 결정 연산자를 사용 하는 방법의 예입니다.

괄호로 묶인 식의 형식과 값 unparenthesized 식의 같습니다 하는 기본 식이입니다.Unparenthesized 식 l-value 인 경우는 l-값입니다.

위에 지정 된 기본 식 구문에 이름 구문에 대 한 설명에 아무 것도 의미 이름, 범위 결정 연산자 이름 앞에 사용 하는 경우 클래스에서 발생할 수 있습니다만 이름 형식을 허용 되지 않는 있지만.여기에 사용자 정의 변환 함수의 이름 및 소멸자 이름이 포함 됩니다.

기본 식은 다음과 같습니다.

100 // literal
'c' // literal
this // in a member function, a pointer to the class instance
::func // a global function
::operator + // an global operator function
::A::B // a global qualified name
( i + 1 ) // a parenthesized expression

아래 예제는 모두 간주 됩니다 이름, 및 다양 한 형식에 따라서 주 식:

MyClass // a identifier
MyClass::f // a qualified name
operator = // an operator function name
operator char* // an converstion operator function name
~MyClass // a destructor name
A::B   // a qualified name
A<int> // a template id

참고 항목

참조

식의 형식