명시적 형식 변환 연산자:)

C + + 함수 호출 구문을 유사한 구문을 사용 하 여 명시적 형식 변환을 허용 합니다.

simple-type-name ( expression-list )

설명

A 단순한 형식 이름 뒤에 식 목록 괄호 구문은 지정 된 식을 사용 하 여 지정 된 형식의 개체를 포함 합니다.다음 예제에서는 int 형식으로 명시적 형식 변환을 보여 줍니다.

int i = int( d );

다음은 수정 된 버전을 사용 하 여 Point 클래스에 정의 된 함수 호출 결과.

예제

// expre_Explicit_Type_Conversion_Operator.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;
class Point
{
public:
    // Define default constructor.
    Point() { _x = _y = 0; }
    // Define another constructor.
    Point( int X, int Y ) { _x = X; _y = Y; }

    // Define "accessor" functions as
    // reference types.
    unsigned& x() { return _x; }
    unsigned& y() { return _y; }
    void Show()   { cout << "x = " << _x << ", "
                         << "y = " << _y << "\n"; }
private:
    unsigned _x;
    unsigned _y;
};

int main()
{
    Point Point1, Point2;

    // Assign Point1 the explicit conversion
    //  of ( 10, 10 ).
    Point1 = Point( 10, 10 );

    // Use x() as an l-value by assigning an explicit
    //  conversion of 20 to type unsigned.
    Point1.x() = unsigned( 20 );
    Point1.Show();

    // Assign Point2 the default Point object.
    Point2 = Point();
    Point2.Show();
}

Output

x = 20, y = 10
x = 0, y = 0

상수를 사용 하 여 명시적 형식 변환을 앞의 예에서 같은 방법을 개체에서 이러한 변환을 수행 하는 작동 합니다.다음 코드 조각은이 보여 줍니다.

int i = 7;
float d;

d = float( i );

명시적 형식 변환은 "캐스팅" 구문을 사용 하 여 지정할 수도 있습니다.캐스트 구문을 사용 하 여 다시 작성 하는 이전 예제가입니다.

d = (float)i;

단일 값에서 변환 캐스팅와 함수 스타일 변환을 동일한 결과가 있습니다.그러나 함수 스타일 구문에서 변환에 대 한 하나 이상의 인수를 지정할 수 있습니다.이 차이점은 사용자 정의 형식에 대 한 중요 한 것입니다.고려는 Point 클래스 및 해당 변환 합니다.

struct Point
{
    Point( short x, short y ) { _x = x; _y = y; }
    ...
    short _x, _y;
};
...
Point pt = Point( 3, 10 );

함수 스타일 변환을 사용 하 여, 앞의 예제에서는 두 개의 값을 변환 하는 방법을 보여 줍니다 (용 xy) 사용자 정의 형식에 Point.

주의 정보주의

명시적 형식 변환을 신중 하 게 사용 하는 C++ 컴파일러의 기본 제공 형식 보다 우선 하므로 검사 합니다.

캐스트 포함 하지 않는 형식으로의 변환에 대 한 표기를 사용 해야 합니다을 단순한 형식 이름 (포인터 또는 참조 형식, 예를 들어).로 표현할 수 있는 형식으로 변환 된 단순한 형식 이름 형식으로 작성할 수 있습니다.참조 하십시오 형식 지정자 무엇을 구성 하는 방법에 대 한 자세한 정보는 단순한 형식 이름.

캐스트 내에서 형식 정의 사용할 수 없습니다.

참고 항목

참조

후 위 식

C + + 연산자

연산자 우선 순위 및 결합성