사소한 기본 생성자에 대한 cppreference 에서 인용 한 다음 단락을 이해하는 데 어려움이 있습니다. 나는 stackoverflow를 검색했지만 여전히 명확한 대답을 얻지 못했습니다. 도와주세요.
간단한 기본 생성자는 동작을 수행하지 않는 생성자입니다. C 언어 (POD 유형)와 호환되는 모든 데이터 유형은 기본적으로 구성 가능합니다. 그러나 C와 달리 간단한 기본 생성자를 가진 객체는 std :: malloc : location-new로 할당 된 메모리와 같이 적절하게 정렬 된 스토리지를 단순히 재 해석하여 만들 수는 없습니다. 새로운 객체를 공식적으로 도입하고 잠재적 인 정의되지 않은 동작을 피하려면 필요합니다.
특히 사소한 기본 생성자가 아무 것도 수행하지 않으면 왜 저장소를 재 해석하고 주어진 유형의 객체가 있다고 가정 할 수 없습니까? 이로 인해 발생할 수 있는 정의되지 않은 잠재적 동작에 대한 몇 가지 예를 제공해 주 시겠습니까?
*reinterpret_cast<float*>(&someNonFloatObject) = 0.1f;
. C ++에는 추상 머신에 지정된 오브젝트 및 오브젝트 수명 개념이 있으며 스토리지에서 오브젝트를 작성하기위한 CPU 명령이 없다고해서 추상 머신에 차이가 없음을 의미하지는 않습니다.