我有下一个功能:
void UserInterface::showMenu(vector<GraphicsCard> *allCards) {
int currentCard = 0;
string userInput = "";
cout << "1: Show Previous, 2: Show Next" << endl;
cin >> userInput;
switch (stoi(userInput)) {
case 1:
if (currentCard > 0) {
currentCard--;
}
UserInterface::showGraphicsCardTable(&allCards[currentCard]);
UserInterface::showMenu(allCards);
break;
case 2:
if (currentCard < allCards->size()) {
currentCard++;
}
UserInterface::showGraphicsCardTable(&allCards[currentCard]);
UserInterface::showMenu(allCards);
break;
default:
break;
}
}
我试图将对向量的特定元素的引用传递给void UserInterface::showGraphicsCardTable(GraphicsCard *card)
函数。问题是&allCards[currentCard]
在这种情况下不起作用。
我怎样才能进一步传递参考文献?
答案 0 :(得分:2)
改变这个:
UserInterface::showGraphicsCardTable(&allCards[currentCard]);
到此:
UserInterface::showGraphicsCardTable(&((*allCards)[currentCard]));
顺便问一下,为什么要在c++中传递指针?在showMenu()
中传递引用! ;)