如果定义了某些宏,则继承更多类

时间:2017-05-29 17:40:44

标签: c++

我有一个宏ROOF_EXISTS,可能在编译期间定义也可能没定义。

宏当前用于指示是否应该以下列方式继承类:

#ifdef ROOF_EXISTS
class building : public door, public roof, public window
#else
class building : public door, public window
#endif

我还想添加另外两个宏,如果定义了这些宏,则添加其他类。 但是,如果我这样做,我很快会遇到大量的复​​制和粘贴以及代码的指数增长,这会变得很混乱。

有没有一种干净的方法来使用宏来有条件地添加(或删除)需要继承的类?

1 个答案:

答案 0 :(得分:-3)

你可以这样做:

class Test: public A
#ifdef TEST
, public B
#else
, public C
#endif
{
};