亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PIMPL的成語真的在實踐中使用嗎?

PIMPL的成語真的在實踐中使用嗎?

藍山帝景 2019-08-02 07:02:07
PIMPL的成語真的在實踐中使用嗎?我正在讀HerbSutter的“例外C+”一書,在那本書中我學到了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;};這似乎很有趣,但我以前從未見過這種方法,無論是在我工作過的公司,還是在我見過源代碼的開源項目中。所以,我想知道這種技術是否真的在實踐中得到了應用?我應該在任何地方使用它,還是要小心使用?這種技術推薦用于嵌入式系統(性能非常重要)嗎?
查看完整描述

3 回答

?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

同意所有其他人關于這批貨物的意見,但請允許我提出一個限制:模板不能很好地工作.

原因是模板實例化需要在實例化發生時可用的完整聲明。(這就是你沒有看到模板方法被定義到CPP文件的主要原因)

您仍然可以引用臨時子類,但是由于必須將它們全部包括在內,所以在編譯中“實現解耦”(避免在任何地方包含所有特定于平臺的代碼,縮短編譯)的所有優點都會消失。

對于傳統的OOP(基于繼承的)是一個很好的范例,但對于一般編程(基于專門化)則不是一個很好的




查看完整回答
反對 回復 2019-08-03
  • 3 回答
  • 0 關注
  • 602 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號