6
กฎข้อที่ 5 - จะใช้หรือเปล่า?
กฎ 3 ( กฎ 5ในมาตรฐาน c ++ ใหม่): หากคุณต้องการประกาศตัว Destructor ให้คัดลอก Constructor หรือตัวดำเนินการกำหนดค่าด้วยตนเองอย่างชัดเจนคุณอาจต้องประกาศทั้งสามอย่างชัดเจน แต่ในทางกลับกัน " รหัสสะอาด " ของ Martin แนะนำให้ลบตัวสร้างและตัวทำลายที่ว่างเปล่าทั้งหมด (หน้า 293, G12: ความยุ่งเหยิง ): สิ่งที่ใช้เป็นตัวสร้างเริ่มต้นโดยไม่มีการใช้งาน? สิ่งที่มันทำคือถ่วงโค้ดด้วยส่วนที่ไม่มีความหมาย ดังนั้นวิธีจัดการกับทั้งสองความคิดเห็นที่ตรงกันข้าม? ควรใช้ตัวสร้าง / ตัวทำลายที่ว่างเปล่าจริงหรือไม่? ตัวอย่างถัดไปแสดงให้เห็นถึงสิ่งที่ฉันหมายถึง: #include <iostream> #include <memory> struct A { A( const int value ) : v( new int( value ) …