精華區beta Programming 關於我們 聯絡資訊
※ 引述《[email protected] (10/100天自我觀察)》之銘言: 其實啦,其實呢..... 剛看到上面的兩個 styles 時就知道你想幹嘛了, 但是很遺憾大家慣用的寫法還是 style 1, 出現需要用到 style 2 的情形, 通常就是所謂的程式結構設計不良, 你需要一些中介層或抽象層來解決這種型別交互相依性。 #include "a.h" <------- 抽象型別 1 #include "b.h" <------- 抽象型別 2 ... #include "X.h" <------- 具象型別 1 #include "Y.h" <------- 具象型別 2 ... 因為你應該讀過 OO design pattern, 所以我想你知道我在說什麼。 而且抽象型別在 C++ 還可以用 template 寫出來, 這時只要在 instantiation 的點看到 template argument 用的 type, 以及 template 本身的 definition, 無論其先後順序都可以 instantiate。 如果你連寫抽象型別都遇到要型別交互相依的問題, 你或許就該考慮再抽出一層抽象層, 或是直接 template 化, template 化可以省下一個單位的繼承樹高度, performance 上也會表現得比較良好。 -- Name: Tseng, Ling-hua E-mail Address: [email protected] School: National Tsing Hua University Department: Computer Science Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design Researching: Software pipelining for VLIW architectures Homepage: https://it.muds.net/~uranus -- ╔═══╗ ┼────────────────────────╮ 狂狷 Origin:[ 狂 狷 年 少 ] whshs.cs.nccu.edu.tw ╰─╮ 年少 ┼╮ < IP:140.119.164.252 > ╰─╮ ╚╦═╦╝ From:61-230-218-171.dynamic.hinet.net ─╨─╨─ KGBBS 遨翔"BBS"的狂狷不馴;屬於年少的輕狂色彩