在C++中,我需要储存有关衍生类别的例子。 但是,我认为,如果I m不错,则使用共享接收器到基类的病媒(因为它需要持有不同种类的衍生产品),集装箱必须持有原始点,而不是病媒(或其他中装集装箱)。 在本土C++中是否有这样做的途径,或者我是否必须使用诸如Boston s ptr_vector等特殊集装箱?
EDIT:这是我试验守则:
class Foo
{
public:
Foo() {}
virtual ~Foo() {}
virtual void set_x(int i) = 0;
};
class Bar : public Foo
{
public:
Bar() {}
void set_x(int i)
{
this->x = i;
}
int x;
};
int main()
{
Bar bar;
// ptr
std::cout << &bar << "
";
std::vector<Foo*> foos;
foos.push_back(&bar);
// different ptr value
std::cout << &foos[0] << "
";
foos[0]->set_x(1);
// however, changes are made
std::cout << bar.x;
return 0;
}
提前感谢,
jena