我有一個宏ROOF_EXISTS
,它可能在編譯期間定義,也可能不定義。如果定義了某些宏,則繼承更多的類
宏目前用來表示一個類應該以下面的方式來繼承與否:
#ifdef ROOF_EXISTS
class building : public door, public roof, public window
#else
class building : public door, public window
#endif
我也想添加2個宏,如果它們被定義它增加了額外的課程。但是,如果我這樣做,我很快就會遇到大量的復制和粘貼,並且代碼的指數級增加會變得很混亂。
有沒有一種乾淨的方式來使用宏來有條件地添加(或刪除)需要被繼承的類?
這看起來像一個可怕的設計。爲什麼不使用可變模板呢?實際上的目的是什麼? –
我不認爲你會這樣做。繼承描述了一種「是 - 一種」關係。爲什麼建築物是一扇窗戶?爲什麼建築是一扇門? –
我認爲你的設計有問題。繼承封裝了「isa」關係。建築物不是門 –