Re: [問題] 請問可以這樣寫嗎

看板C_and_CPP (C/C++)作者 (HaHaHa~~~)時間13年前 (2013/01/03 13:19), 編輯推噓0(0022)
留言22則, 4人參與, 最新討論串2/2 (看更多)
: -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 220.134.238.4 : → PkmX:template 01/03 11:32 : 推 littleshan:可以是可以(先不管Something名稱重覆)但OOP不是這樣用 01/03 11:37 : → PkmX:我覺得你可能要給個比較concrete的use case 大家才比較好解答 01/03 12:04 : → legnaleurc:linker 會爛掉 01/03 12:31 : → legnaleurc:你可能想實現 duck typing, 但用 template 比較自然 01/03 12:32 : → legnaleurc:如果你每次呼叫都要轉型, 那繼承完全多餘 01/03 12:34 因為公司的code....@@ 才想到這樣的改法(當然也只是先想想試試而已) 原來公司的 class module1{ class something{ int val1; ... } } class module2{ class something{ int val1; int val2; ... } } 每個module都有something,something2等等,雖然結構不盡相同 但其實很類似 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.238.4

01/03 13:33, , 1F
多這個 inner class 的用途是?
01/03 13:33, 1F

01/03 13:33, , 2F
相似的 idiom 有 pimpl, 但解決的問題完全不同
01/03 13:33, 2F

01/03 13:34, , 3F
而且你好像還是沒解釋為什麼你想這麼改 XD
01/03 13:34, 3F

01/03 13:42, , 4F
inner class的用途跟我原來提出的想法是一樣的
01/03 13:42, 4F

01/03 13:43, , 5F
希望每一個模組都有"Object",即使每個模組的"Object"
01/03 13:43, 5F

01/03 13:44, , 6F
結構不太一樣,只是原來的方式是用inner class
01/03 13:44, 6F

01/03 13:45, , 7F
但我覺得原來的寫法不好,會有很多inner class
01/03 13:45, 7F

01/03 13:45, , 8F
看來跟vector<T>::iterator, list<T>::iterator有點像
01/03 13:45, 8F

01/03 13:45, , 9F
所以才會思考這個問題
01/03 13:45, 9F

01/03 13:45, , 10F
我看不出這樣改有什麼好處
01/03 13:45, 10F

01/03 13:46, , 11F
所以我一開始才說這問題可能沒有太大意義阿XD
01/03 13:46, 11F

01/03 13:47, , 12F
因為我目前也不知道有什麼比較好的修改方式
01/03 13:47, 12F

01/03 13:47, , 13F
只是覺得原來的寫法,含有太多inner class,很亂
01/03 13:47, 13F
※ 編輯: ansonguy 來自: 220.134.238.4 (01/03 13:50)

01/03 13:49, , 14F
如果這個 inner class 沒有需要存取外面的成員, 就用
01/03 13:49, 14F

01/03 13:50, , 15F
typedef 復用類似的類別就好了
01/03 13:50, 15F

01/03 13:52, , 16F
目前需求的確沒有存取外面成員,但typedef的寫法指的是?
01/03 13:52, 16F

01/03 13:52, , 17F
有需要作噁心的事也可以用 CRTP idiom, 反正繼承是真
01/03 13:52, 17F

01/03 13:53, , 18F
的沒招才在用的
01/03 13:53, 18F

01/03 13:57, , 19F
我不懂為何你覺得inner class不好,在我看來那是原作者
01/03 13:57, 19F

01/03 13:57, , 20F
為了表達外部不需要知道inner class的存在,或著是
01/03 13:57, 20F

01/03 13:58, , 21F
inner與outer有非常緊密的從屬關係,所以才這樣寫
01/03 13:58, 21F

01/03 20:39, , 22F
我再好好想想,謝謝幾位的意見
01/03 20:39, 22F
文章代碼(AID): #1GvHJvYC (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1GvHJvYC (C_and_CPP)