共通の機能と流暢なインターフェイスを備えた基底(抽象)クラス(type::base
と呼ぶ)を構築したいと思います。私が直面している問題は、流暢なインターフェイスとC++の継承
class base {
public:
base();
virtual ~base();
base& with_foo();
base& with_bar();
protected:
// whatever...
};
今私は、サブタイプを作ることができる例えば:
my_type build_my_type()
{
return my_type().with_foo().with_bar();
}
:このようなものをサブタイプを使用している場合
class my_type : public base {
public:
myType();
// more methods...
};
問題が来ます10
私たちはmy_typeではなくbaseを返すので、これはコンパイルされません。
私はちょうどことができることを知っている:
my_type build_my_type()
{
my_type ret;
ret.with_foo().with_bar();
return ret;
}
しかし、私はどのように私はそれを実装することができます考えていた、と私は、いくつかの提案を任意の有効なアイデアを見つけていませんでしたか?
質問とは何も関係がないので、名前空間のものを削除しました –