慣例は、純粋な仮想インターフェイスクラスを処理する文字 "I"です。しばしば、サブクラス用の共有機能を持つ部分的な具象クラスも必要であることがわかります。だから、具体的な名前空間サブクラスを持つインターフェイスクラスのC++クラス命名規則
class IFoo {...}
class Foo : public IFoo {...}
は私が名前空間で区別はFooから派生サブクラスをしたいとき難問に名前を付けるに実行します。例えば、
Bar::Foo
Baz::Foo
私は
namespace Bar { class Foo : public Foo {} }
をコーディングする際に、驚くほど、VSは、「クラスは、自身のベースクラスにはできません」というエラーを与えるわけではないため。 (命名はバー:: IFoo、およびバズ:: IFooがあるので、何も「中間クラスは、ありませんれていない問題。)私は
class MyFoo : public IFoo
namespace Bar { class Foo : public MyFoo {} }
または
namespace base { class Foo : public IFoo {} }
namespace Bar { class Foo : public base::Foo {} }
だろうがと、この問題を回避することができます
私はFoo、Bar :: Foo、Baz :: Fooというクラスを持っているのは分かりやすい混乱のために悪いです(例えば、 "Basを使う"を追加するとあいまいさがあります)。Is Is私がしようとしていることを明確に関連付ける命名規則や構文がありますか?
私は個人的には「使用する」を使用しません。合理的に使用するには時間がかかりすぎる場合は、関数/クラスまたは実装ネームスペースで 'typedef'を使用します。命名の競合を避けることができ、関数/クラスが使用されている場所から関数/クラスが来た場所を知ることができます。 –
私はあなたが3つのクラスのよりわかりやすい名前を見つけることを試みるべきだと思う、そして問題は消え去るでしょう。とにかく、IコンベンションはC#のものです。 –