คำถามติดแท็ก pimpl-idiom

11
pImpl สำนวนที่ใช้จริงในการปฏิบัติจริง
ฉันกำลังอ่านหนังสือ "เจ๋ง C ++" โดย Herb Sutter และในหนังสือเล่มนั้นฉันได้เรียนรู้เกี่ยวกับสำนวน pImpl โดยพื้นฐานแล้วความคิดคือการสร้างโครงสร้างสำหรับprivateวัตถุของclassและจัดสรรแบบไดนามิกเพื่อลดเวลาในการรวบรวม (และซ่อนการใช้งานส่วนตัวในลักษณะที่ดีกว่า) ตัวอย่างเช่น: class X { private: C c; D d; } ; สามารถเปลี่ยนเป็น: class X { private: struct XImpl; XImpl* pImpl; }; และใน CPP คำจำกัดความ: struct X::XImpl { C c; D d; }; ดูเหมือนว่าจะน่าสนใจ แต่ฉันไม่เคยเห็นวิธีการนี้มาก่อนทั้งใน บริษัท ที่ฉันเคยทำงานหรือในโครงการโอเพ่นซอร์สที่ฉันเคยเห็นซอร์สโค้ด ดังนั้นฉันสงสัยว่าเทคนิคนี้ใช้ในทางปฏิบัติจริง ๆ หรือไม่ …
165 c++  oop  pimpl-idiom 

10
สำนวน Pimpl เทียบกับอินเทอร์เฟซคลาสเสมือนจริง
ฉันสงสัยว่าอะไรจะทำให้โปรแกรมเมอร์เลือกสำนวน Pimpl หรือคลาสเสมือนจริงและการสืบทอด ฉันเข้าใจว่าสำนวน pimpl มาพร้อมกับการกำหนดทิศทางพิเศษที่ชัดเจนสำหรับแต่ละวิธีสาธารณะและค่าใช้จ่ายในการสร้างวัตถุ ในทางกลับกันคลาส Pure virtual มาพร้อมกับการกำหนดทิศทางโดยนัย (vtable) สำหรับการใช้งานที่สืบทอดมาและฉันเข้าใจว่าไม่มีค่าใช้จ่ายในการสร้างวัตถุ แก้ไข : แต่คุณต้องมีโรงงานถ้าคุณสร้างวัตถุจากภายนอก อะไรทำให้คลาสเสมือนจริงที่เป็นที่ต้องการน้อยกว่าสำนวน pimpl?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.