コードには、いくつかの特別なクラスといくつかの通常のクラスがあります。特別なクラスには別の扱いをする必要があるため、それらを区別したいと思います。これらの特別なクラスはすべてベースです (他のクラスの子ではありません)。
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
です。
質問: empty を使用した継承などのインターフェイスclass _special
を追加すると、現在のコードになんらかの形で影響を与えますか (たとえば、オブジェクトの構造化、コンパイル エラーなど) ?