我有一个宏ROOF_EXISTS
,它可能在编译期间定义,也可能不定义。如果定义了某些宏,则继承更多的类
宏目前用来表示一个类应该以下面的方式来继承与否:
#ifdef ROOF_EXISTS
class building : public door, public roof, public window
#else
class building : public door, public window
#endif
我也想添加2个宏,如果它们被定义它增加了额外的课程。但是,如果我这样做,我很快就会遇到大量的复制和粘贴,并且代码的指数级增加会变得很混乱。
有没有一种干净的方式来使用宏来有条件地添加(或删除)需要被继承的类?
这看起来像一个可怕的设计。为什么不使用可变模板呢?实际上的目的是什么? –
我不认为你会这样做。继承描述了一种“是 - 一种”关系。为什么建筑物是一扇窗户?为什么建筑是一扇门? –
我认为你的设计有问题。继承封装了“isa”关系。建筑物不是门 –