C ++如何将引用从一个函数传递给另一个函数?

时间:2017-05-13 15:50:59

标签: c++ function pointers parameters reference

我有下一个功能:

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]在这种情况下不起作用。 我怎样才能进一步传递参考文献?

1 个答案:

答案 0 :(得分:2)

改变这个:

UserInterface::showGraphicsCardTable(&allCards[currentCard]);

到此:

UserInterface::showGraphicsCardTable(&((*allCards)[currentCard]));

顺便问一下,为什么要在中传递指针?在showMenu()中传递引用! ;)