スタイルについて質問があります。外因性オブジェクトの値(金利)に依存するクラス(私の場合はオプション)があります。私の目標は、外因性オブジェクト(Rate)の抽象基本クラスを作成して、依存するクラスOption内で機能するSimulatedRateやConstantRateなどのバリエーションを作成できるようにすることです。
ただし、C ++で見つけたのは、明らかに抽象基本クラスをインスタンス化できないため、基本クラスへのポインターまたは参照のいずれかを格納する必要があるためです。私の懸念は、インスタンス化された外因性オブジェクトが依存クラスの外部のスコープから外れると、依存クラスがジャンクを指すようになることです。
C ++でこの問題にポリモーフィズムを利用する合理的な方法はありますか?
私の現在のコード:
class Dependent
{
public:
Dependent(const Exogenous& exo) : exo_(exo) {}
double getSomething() const { exo_.interfaceMethod(); }
private:
Exogenous& exo_;
}
class Exogenous
{
public:
virtual double interfaceMethod() const=0;
}
class ExogenousVariationA
{
public:
virtual double interfaceMethod() const { return resultA; }
}
class ExogenousVariationB
{
public:
virtual double interfaceMethod() const { return resultB; }
}