在代碼中有一些特殊的類,並且有一些正常的類。我想區分它們,因爲需要給予不同的待遇。所有這些特殊類基地(不是任何其他類的孩子)額外的繼承對對象結構或實例化有什麼影響嗎?
爲了實現這個目標,我令牌化在源代碼中特殊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解決方案現在包括在內。 –