다음을 통해 공유


단순 할당 (C++)

단순 대입 연산자 (=)가 첫 번째 피연산자에 지정 된 개체에 저장 하 여 두 번째 피연산자의 값이 됩니다.두 개체 모두의 산술 형식이 면 형식에 값을 저장 하기 전에 왼쪽에서 오른쪽 피연산자가 변환 됩니다.

개체 형식의 const 및 volatile 단지 일시적 이거나는 const 또는 volatile 형식 l-값을 할당할 수 있습니다.

클래스 형식 (구조체, 공용 구조체 및 클래스 형식)의 개체 할당 연산자 라는 함수에서 수행 됩니다 =.이 연산자 함수의 기본 동작을 비트 복사를 수행 하는 것; 그러나 오버 로드 된 연산자를 사용 하 여이 동작을 수정할 수 있습니다.(참조 하십시오 오버 로드 연산자 에 대 한 자세한 내용은.)

개체를 명확 하 게 파생된 클래스는 해당된 기본 클래스에서 기본 클래스 개체에 할당할 수 있습니다.반대로 클래스를 기반으로 하는 파생된 클래스에서 암시적으로 변환 하기 때문에 마찬가지입니다 있지만 파생 클래스에서 기본 클래스에.예를 들면 다음과 같습니다.

// expre_SimpleAssignment.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
class ABase
{
public:
    ABase() { cout << "constructing ABase\n"; }
};

class ADerived : public ABase
{
public:
    ADerived() { cout << "constructing ADerived\n"; }
};

int main()
{
    ABase aBase;
    ADerived aDerived;

    aBase = aDerived; // OK
    aDerived = aBase; // C2679
}

참조 형식에 할당 하면 참조가 가리키는 개체를 만들어지는 것 처럼 동작 합니다.

클래스 형식의 개체에 대 한 할당에서 초기화 다릅니다.어떻게 할당 하 고 초기화를 설명 하기 위해 수 있습니다, 그리고 코드를 고려 하십시오.

UserType1 A;
UserType2 B = A;

앞의 코드에서는 이니셜라이저를 보여 줍니다. 이 대 한 생성자를 호출 UserType2 형식의 인수를 사용 하는 UserType1.코드를 제공합니다.

UserType1 A;
UserType2 B;

B = A;

할당 문의

B = A; 

다음 효과 중 하나를 사용할 수 있습니다.

  • 함수 연산자를 호출 = UserType2, 연산자 제공 = 함께 제공 되는 UserType1 인수입니다.

  • 명시적 변환 함수를 호출할 UserType1::operator UserType2, 이러한 함수를 존재 하는 경우.

  • 생성자를 호출 UserType2::UserType2, 사용이 생성자에서 존재 하는 경우는 UserType1 인수 결과 복사 합니다.

참고 항목

참조

이항 연산자 식