在代码中有一些特殊的类,并且有一些正常的类。我想区分它们,因为需要给予不同的待遇。所有这些特殊类基地(不是任何其他类的孩子)额外的继承对对象结构或实例化有什么影响吗?
为了实现这个目标,我令牌化在源代码中特殊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
的孩子是从多个类继承,然后会有暧昧typedef
秒。
问题:添加这种接口如继承与空class _special
,将它它伤害以任何方式的当前代码(例如对象的结构化,编译错误等)?
很好的回答,但我没有使用C++ 11。 – iammilind
@iammilind:你仍然可以使用类型特征:) –
@iammilind:C++ 03解决方案现在包括在内。 –