我想问一下如果我的对象指针列表在我的类的内部类(这被称为内部/嵌套)的向量中隐藏私有变量,那么如何调用对象方法(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;
}
答案 0 :(得分:2)
您收录的小片段有几个问题。通过降低重要性顺序:
在i++
循环for
之前,您需要分号而不是逗号。
如果向量确实包含指向对象的指针,则需要调用ptr->at(i)->getName()
,而不是ptr->at(i).getName()
。在这种情况下,您(很可能)还需要将向量声明为vector<Category*>
,而不是vector<Category>
。
无需使用指针访问向量。如果您想要矢量的较短名称,可以使用引用vector<Category>& vec = impl->categories
。这使读者清楚地知道您只引用单个向量而不是向量数组,并且无需为每个方法调用取消引用向量。
答案 1 :(得分:2)
不确定这是否是你问题的全部范围(看起来大多数都很好),但我认为你需要一个分号:
你有:
i = 0; i < ptr->size(), i++
但你需要大小而不是逗号:
i = 0; i < ptr->size(); i++