假设我们和一个投资(例如,股票,债券等)模型库一起工作,各种各样的投资形式从一个根类 Investment 派生出来:
class Investment { ... }; // root class of hierarchy of
// investment types
进一步假设这个库使用了通过一个 factory 函数为我们提供特定 Investment 对象的方法:
Investment* createInvestment(); // return ptr to dynamically allocated
// object in the Investment hierarchy;
// the caller must delete it
// (parameters omitted for simplicity)
通过注释指出,当 createInvestment 函数返回的对象不再使用时,由 createInvestment 的调用者负责删除它。那么,请考虑,写一个函数 f 来履行以下职责: