개체를 초기화 하는 동안 할당 새로운

선택적 이니셜라이저 의 문법에 대 한 필드가 포함 되어 있는 연산자.이 새 개체를에 사용자 정의 생성자를 초기화할 수 있습니다.초기화 수행 하는 방법에 대 한 자세한 내용은 참조 하십시오. 이니셜라이저.초기화 식을 사용 하 여 사용 하는 방법 다음 예제는 연산자:

// expre_Initializing_Objects_Allocated_with_new.cpp
class Acct
{
public:
    // Define default constructor and a constructor that accepts
    //  an initial balance.
    Acct() { balance = 0.0; }
    Acct( double init_balance ) { balance = init_balance; }
private:
    double balance;
};

int main()
{
    Acct *CheckingAcct = new Acct;
    Acct *SavingsAcct = new Acct ( 34.98 );
    double *HowMuch = new double ( 43.0 );
    // ...
}

이 예제에서는 개체 CheckingAcct 를 사용 하 여 할당 되는 연산자를 있지만 기본 초기화 지정 합니다.따라서 기본 생성자는 클래스에 대 한 Acct()에서 호출 됩니다.그런 다음 개체 SavingsAcct 34.98에 명시적 초기화 될 경우를 제외 하 고는 동일한 방식으로 할당 됩니다.34.98 형식 이므로 이중, 해당 형식의 인수를 사용 하는 생성자의 초기화를 처리 하기 위해 호출 됩니다.마지막으로, nonclass 형식 HowMuch 43.0으로 초기화 됩니다.

개체에서 개체 클래스 형식인 클래스 생성자 (앞의 예) 에서처럼에서 있으면 초기화할 수 있습니다 해당 다음이 조건 중 하나가 충족 되는 경우 연산자:

  • 이니셜라이저에 제공 된 인수 생성자에는 동의 합니다.

  • 클래스에 기본 생성자 (인수 없이 호출할 수 있는 생성자)이 있습니다.

액세스 제어 및 모호성 컨트롤에서 수행 operator new 및 규칙의 규정에 따라 생성자에서 모호성초기화 특수 멤버 함수를 사용 하 여.

사용 하 여 배열 할당 하는 경우 없음 명시적 요소 초기화를 수행할 수 있습니다의 연산자. 기본 생성자만 있는 경우 호출 됩니다.참조 하십시오 기본 인수 에 대 한 자세한 내용은.

메모리 할당 오류가 발생 하는 경우 (operator new 0 값을 반환), 없음 초기화를 수행 합니다.존재 하지 않는 데이터를 초기화할 시도 로부터 보호할 수 있습니다.

함수 호출에 따라 초기화 식의 계산 순서는 정의 되지 않습니다.또한, 메모리 할당을 수행 하기 전에 완벽 하 게 평가 하 고 이러한 식에 사용 되었습니다.메모리 할당 오류가 발생 하는 경우 및 해당 연산자는 0이 반환 되 고 일부 이니셜라이저 식은 완전히 계산 될 수 있습니다.

참고 항목

참조

새 운영자 (C++)