[問題] 這麼做的目的是??

看板C_and_CPP (C/C++)作者 (改)時間14年前 (2011/12/22 22:09), 編輯推噓1(1010)
留言11則, 3人參與, 最新討論串1/2 (看更多)
最近再TRACE別人寫的程式,有些技巧不是很懂 Q1. 若某個class有成員設為protected或是destructor設為virtual, 表示這個class是希望用來被繼承的??? Q2. 若某個class把constructor設為private,通常會有另一個public的member function 用來產生並回傳該class的instance,這麼做的目的是??? 用來實做singleton嗎??? Q3. 若某個class把destructor設為private,通常會另外設有friend class, 透過friend class替該class做cleanup的動作??? 這麼做有什麼好處呢??? Q4. 有些class會把copy constructor和assignment設為private 是為了不想讓該class的instance做assign的動作, 在甚麼樣的情況之下,我們會不希望class的instance assign給其他instance呢??? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.240.146.135

12/22 22:18, , 1F
Q4 因為他shallow copy會爛掉 然後作者懶得寫deep copy
12/22 22:18, 1F

12/22 22:18, , 2F
(不負責任回答)
12/22 22:18, 2F

12/22 22:37, , 3F
Q4有些功能並不需要提供給使用者,只要設計者知道怎麼操
12/22 22:37, 3F

12/22 22:37, , 4F
做就好.例如一些編譯器最佳化的作法,設計者並不需要告
12/22 22:37, 4F

12/22 22:38, , 5F
知使用者,他到底調整了什麼加速.
12/22 22:38, 5F

12/22 22:44, , 6F
q1:protected member是希望讓derived class可以直接使用
12/22 22:44, 6F

12/22 22:45, , 7F
base class的member,virtual destructor比較是用在
12/22 22:45, 7F

12/22 22:45, , 8F
指標上.
12/22 22:45, 8F

12/23 00:57, , 9F
Q1:C++FAQ Lite [20.7] Q2: [10.8] Q3: 物件的lifecycle需
12/23 00:57, 9F

12/23 00:59, , 10F
要其他物件來管理 Q4 物件帶的資料需要唯一性或是根本不能
12/23 00:59, 10F

12/23 00:59, , 11F
被複製,像系統資源之類的
12/23 00:59, 11F
文章代碼(AID): #1EypeLKF (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1EypeLKF (C_and_CPP)