-2
제발, stackoverflow의 제발, 나에게 자비를 베풀어주십시오. 내 임무는 1 시간 만에 끝날 것이고 모든 것이 작동한다. 나는 내 인생에 대해 내 이동 생성자 (그리고 확장으로, 나의 카피 할당)가 세분화 오류를 던지는 이유를 알 수 없다는 것을 제외하고는!C++ : Movement Constructor가 세그멘테이션 오류를 발생 시켰습니까?
도움이되는 경우 추가 정보 : 프로그램은 기본적으로 모든 데이터 유형의 배열을 저장하는 Chain이라는 데이터 구조를 만들고 크기가 size_t입니다.
미리 감사 드리며 더 자세한 정보가 필요하면 알려주세요.
// Copy-constructor.
Chain(const Chain &rhs) {
size_ = rhs.size();
array_ = new Object[size_];
for (int i = 0; i < size_; i++) {
array_[i] = rhs.array_[i];
}
}
// Copy-assignment.
Chain& operator=(const Chain &rhs) {
Chain copy = rhs;
std::swap(*this, copy);
return *this;
}
// Move-constructor.
Chain(Chain &&rhs) {
rhs.array_ = nullptr;
}
이동 생성자가 실제로 클래스 멤버를 설정하지 않으므로 이후 작업이 실패 할 가능성이 있습니다 ... –
True. 나는 이것이 문제라고 생각하지 않는다. 나의 구현은 정확히 내 교수가 제안한 것이었다. – BowmanBeric
@BowmanBeric 그러면 교수님이 틀립니다. 또는 당신은 당신에게 한 말을 오해했습니다. –