นี่เป็นตัวอย่างง่าย ๆ เพื่อแสดงคำถาม:
class A {};
class B
{
B(A& a) : a(a) {}
A& a;
};
class C
{
C() : b(a) {}
A a;
B b;
};
ดังนั้น B เป็นผู้รับผิดชอบสำหรับการปรับปรุงส่วนหนึ่งของซีฉันวิ่งรหัสผ่านผ้าสำลีและมัน whinged เกี่ยวกับสมาชิกในการอ้างอิง: ผ้าสำลี # 1725 การพูดคุยเกี่ยวกับการดูแลการคัดลอกและการมอบหมายเริ่มต้นที่ยุติธรรมพอ แต่การคัดลอกและการมอบหมายเริ่มต้นก็ไม่ดีสำหรับพอยน์เตอร์ดังนั้นจึงมีข้อได้เปรียบเล็กน้อย
ฉันมักจะพยายามใช้การอ้างอิงที่ฉันสามารถทำได้เนื่องจากพอยน์เตอร์พอยน์เตอร์แนะนำความไม่แน่นอนเกี่ยวกับผู้ที่รับผิดชอบในการลบตัวชี้นั้น ฉันชอบที่จะฝังวัตถุตามค่า แต่ถ้าฉันต้องการตัวชี้ฉันใช้ auto_ptr ในข้อมูลสมาชิกของคลาสที่เป็นเจ้าของตัวชี้และส่งวัตถุไปรอบ ๆ เพื่ออ้างอิง
ฉันมักจะใช้ตัวชี้ในข้อมูลสมาชิกเท่านั้นเมื่อตัวชี้อาจเป็นโมฆะหรือสามารถเปลี่ยนแปลงได้ มีเหตุผลอื่นอีกไหมที่จะชอบพอยน์เตอร์มากกว่าการอ้างอิงสำหรับสมาชิกข้อมูล
เป็นความจริงหรือไม่ที่จะบอกว่าวัตถุที่มีการอ้างอิงไม่ควรกำหนดได้เนื่องจากการอ้างอิงไม่ควรเปลี่ยนเมื่อเริ่มต้น?