0
는
Rule 14: Think carefully about copying behavior in resource-managing classes
에, 예를 들어 내가 효과적인 C++을 읽고있다가
아래 코드 :복사 RAII 객체는
Mutex m;
Lock ml1(&m);
Lock ml2(ml1);
나는 그것을 할 수있다 생각하기 때문에 다음과 같은 코드는 수도 실행 :
// ml1 constructes
lock(m)
// copy ml2, but ml1.mutexPtr and ml2.mutexPtr both point to m
ml2.mutexPtr = ml1.mutexPtr
// ml1 destructs
unlock(m)
// ml2 destructs
unlock(m)
그러면 m이 두 번 잠금 해제됩니다. 아래의 원인으로 인해 실제 원인이 무엇입니까? 고마워!
이 책의 버전은 무엇입니까? 내 버전의 "항목 14"는 가상 소멸자에 관한 것입니다 ... –
효과적인 C++ : 프로그램 및 디자인 개선을위한 55 가지 구체적인 방법 [버전 3] – Caesium
아, 버전 2가 있습니다. 죄송합니다. –