c++ - 在 vector 中的类中调用函数的正确方法

标签 c++ vector

首先我有一个类叫做Foo它包含一个虚函数 int Foo::getId()

我有一个类型定义:typedef std::vector<Foo*> FooList;

然后我定义Foo::FooList *list;然后我加载这个 vector 。

我想知道如何访问 getId() .目前我正在使用 list[a].getId();但编译器一直说 error: class std::vector<Foo*, std::allocator<Foo*> > has no member named getId .

感谢您的帮助!

最佳答案

list->at(a)->getId();

你也可以这样做

list->operator[](a)->getId();

(*(*list)[a]).getId();

或任何组合。

list 是一个指针,因此需要解引用,它包含的指针也是如此。未取消引用的指针上的数组运算符会将 a 添加到 list - 使其指向不同的位置。

关于c++ - 在 vector 中的类中调用函数的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13411660/

相关文章:

c++ - gcc 4.9.2 和 gcc 5.3 之间正则表达式支持的差异

c++ - (C/C++ 的 latex 数学解析

c++ - 在C++中默认情况下结构体的内存是如何排列的?

c++ - 使用 vector 插入 map 的值

c++ - 为什么 `deconstructor` 调用比 `constructor` 调用多?

c++ - Apple Mach-O Linker 错误,我不知道该怎么办

c++ - 在基于范围的 for 循环中使用 shared_ptr 到 std::vector

c++ - 使用 const 初始化列表初始化 const vector

C++ 在 multimap 中查找键和值

c++ - 将 wchar 转换为字符串并插入 vector (C/C++)