마찬가지로 기본 복사 생성자가 모든 구성원에 대해 복사 생성자를 호출합니까? 예를 들어, 클래스가 너무 같은 비 POD 구성원이있는 경우 :기본 할당 연산자는 모든 구성원에 대해 operator = 연산자를 호출합니까?
class A
{
std::string str;
};
... 할 기본 컴파일러 생성 된 복사 생성자와 대입 연산자 작업이 제대로? 그들은 문자열의 복사 생성자 및 operator=
을 호출 할 것인가 아니면 구성원 변수 str
의 비트 단위 복사본을 만들겠습니까?
다른 말로하면, std::string
회원을 보유하고 있다는 것은이 클래스가 사용자 구현 복사 생성자와 할당 연산자를 필요로한다는 것을 의미합니까?
"예, 컴파일러에서 생성 한 컴파일러가 올바르게 작동합니다." - const 멤버가있는 클래스의 경우에도? –
@spin_eight 그렇다면 복사 또는 할당이 컴파일되지 않습니다. –
@LuchianGrigore : 실제로 사본이 컴파일됩니다. 과제는 분명히 알 수 없습니다. –