我有一个关于风格的问题。我有一个类(在我的例子中是一个选项),它取决于外生对象的值(利率)。我的目标是为外生对象 (Rate) 创建一个抽象基类,以便我可以构造变体,例如 SimulatedRate 或 ConstantRate,它们将在我的依赖类 Option 中工作。
但是,我在 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; }
}