如果我的对象指针列表位于我类的内部类(这称为内部/嵌套)的 vector 中以隐藏私有(private)变量,我想问一下如何调用对象方法(getName 并获取该名称)方法。这是我到目前为止写的。我不知道如何打印出所有对象:
bool Program::checkCategory(string name){
vector<Category> *ptr = &(impl->categories);
int i;
for (i = 0; i < ptr->size(); i++){
cout << ptr->at(i).getName() << endl;
}
return 0;
}
最佳答案
您包含的小片段有几个问题。按重要性降序排列:
在
i++
之前需要一个分号,而不是逗号在for
循环。如果 vector 确实包含指向对象的指针,那么您需要调用
ptr->at(i)->getName()
, 不是ptr->at(i).getName()
.在那种情况下,您还(很可能)需要将 vector 声明为vector<Category*>
, 不是vector<Category>
.不需要使用指针来访问 vector 。如果你想要一个更短的 vector 名称,你可以使用一个引用,
vector<Category>& vec = impl->categories
.这让读者清楚地知道您只是在引用单个 vector 而不是 vector 数组,并且无需为每个方法调用取消引用 vector 。
关于c++ - 如何从 vector 中的指向对象的指针列表中调用对象方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19911889/