그래서 .. 우리는 어떻게 호출 할 수 있습니까? memcpy (dataCopy, data, length); 추상 데이터를 복사하려면?memcpy 및 C++ 클래스 템플릿 - 사용 방법은 무엇입니까?
추상 T가 안전하지 않은 경우 T는 POD (일반 오래된 데이터, 기본적으로 C 구조체)임을 알 수 있습니다. 복사 할 수 있습니까?
그래서 .. 우리는 어떻게 호출 할 수 있습니까? memcpy (dataCopy, data, length); 추상 데이터를 복사하려면?memcpy 및 C++ 클래스 템플릿 - 사용 방법은 무엇입니까?
추상 T가 안전하지 않은 경우 T는 POD (일반 오래된 데이터, 기본적으로 C 구조체)임을 알 수 있습니다. 복사 할 수 있습니까?
임의의 C++ 유형 T
에서 작업 하시겠습니까? T
이 POD (일반 오래된 데이터, 기본적으로 C 구조체) 유형인 경우를 제외하고는의 개체를 memcpy
으로 복사하는 것이 안전하지 않습니다. 그럴 경우 예를 들어 T
의 복사 생성자가 실행되지 못하게되어 잘못된 복사로 이어질 수 있습니다. memcpy
std::vector
은 데이터 버퍼를 복사하지 않습니다.
T의 유형에 따라 위험 할 수 있습니다. T가 POD 유형이면 모든 것이 괜찮습니다. 그렇지 않으면 간단히 T의 복사본 생성자를 호출하거나 (가능하지 않은 경우 복제 패턴을 사용하는 것이 좋습니다).
캔트 이렇게하면됩니다. 그렇게 쉽고, 가능하고, 신뢰할 수 있다면, 프로그래머는 operator=()
을 오버로딩하지 않고 복사 생성자를 작성하지 않을 것입니다.
개체의 복사본을 만들려면 operator=()
을 오버로드하거나 copy-constructor를 작성하거나 두 가지 작업을 모두 수행하십시오!
어떻게 memcpy를 사용 하시겠습니까? –