C++策略设计模式,制作一个接口数组

use*_*163 4 c++ design-patterns strategy-pattern

在实现了策略模式之后,我想创建一个接口类型的数组,然后我可以添加任何具体类型.

对于那些不了解策略模式的人:http: //en.wikipedia.org/wiki/Strategy_pattern 在这个特定的例子中,我想创建一个StrategyInterface数组,然后我可以填充具体类型的A,B和C但是,因为这是一个抽象类,我无法完成它.如果没有删除抽象方法,有没有办法做到这一点,还是完全不可能?

180*_*ION 6

使数组存储指向接口类型的指针:

typedef std::vector<Interface *> Array;
Array myArray;
myArray.push_back(new A());
Run Code Online (Sandbox Code Playgroud)

此外,您可以使用ptr_vector为您管理内存:

typedef boost::ptr_vector<Interface> Array;
// the rest is the same
Run Code Online (Sandbox Code Playgroud)