在实现了策略模式之后,我想创建一个接口类型的数组,然后我可以添加任何具体类型.
对于那些不了解策略模式的人:http: //en.wikipedia.org/wiki/Strategy_pattern 在这个特定的例子中,我想创建一个StrategyInterface数组,然后我可以填充具体类型的A,B和C但是,因为这是一个抽象类,我无法完成它.如果没有删除抽象方法,有没有办法做到这一点,还是完全不可能?
使数组存储指向接口类型的指针:
typedef std::vectorArray; Array myArray; myArray.push_back(new A());
此外,您可以使用ptr_vector为您管理内存:
typedef boost::ptr_vectorArray; // the rest is the same