在代码中有一些特殊的类,也有一些普通的类。我想将它们区分开来,因为特殊课程需要给予不同的待遇。所有这些特殊类都是基础类(不是任何其他类的子类)
为了实现这一点,我class
在源代码中标记了特殊的 es,方法是向它们插入一个空的继承struct
:
struct _special {}; // empty class
class A : public _special { // A becomes special
...
};
class B { // 'B' remains normal
...
};
class D : public A { // 'D' becomes special due to 'A'
...
};
每当需要时,我都可以使用is_base_of<Base,Derived>
. 另一种方法是typedef
在特殊类中使用:
class A {
public: typedef something _special;
};
问题是,如果A
's 的孩子是从多个类继承的,那么就会有模棱两可typedef
的 s。
问题:添加像空继承这样的接口class _special
,是否会以任何方式损害当前代码(例如对象结构、编译错误等)?