调用存储在向量中的对象的成员函数

And*_*opa 5 c++ stl vector

这听起来像是一个新手问题。如何调用存储在向量中的对象的成员函数?据说,我有这门课:

class A {
public:
void foo() {
std::cout << "Hello World"; }
};
Run Code Online (Sandbox Code Playgroud)

然后我将一些对象存储在一个向量中:

std::vector<A*> objects;
A* b;
A* c;
A* d;

objects.push_back(b);
objects.push_back(c);
objects.push_back(d);
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个循环,其中存储在向量中的每个对象都会调用它自己的 foo() 函数。我该怎么做?起初我以为我可以做这样的事情:

objects[2].foo();
Run Code Online (Sandbox Code Playgroud)

但是我好像做不到这样。

pau*_*sm4 3

可以这样做:

std::vector<A> objects;
A b;
A c;
A d;

objects.push_back(b);
objects.push_back(c);
objects.push_back(d);

objects[2].foo();
Run Code Online (Sandbox Code Playgroud)

请更具体地说明确切的错误。我怀疑整个问题可能是试图用“.”引用指向对象的指针。而不是“->”。

但是,是的,一般来说:

1)你可以在任何STL容器中保存一个对象,或者指向对象的指针

2) 您可以在从容器访问该对象时调用该对象的任何公共方法。