簡體   English   中英

在函數c ++之間傳遞數組

[英]passing arrays between functions c++

我四處張望,找不到任何明確回答如何將數組從function1,class1傳遞到function2,class2的地方。

這是我的代碼。

游戲類

void Game::userInputNumbers()
{
    for (int i = 0; i < 6; i++)
    {
    std::cin >> myNumbers[i];
    }

    for (int i = 0; i < 6; i++)
    {
        std::cout << myNumbers[i] << "   ";
    }
}

主要

game.userInputNumbers(); 
user.setTicket(int a, myNumbers[6], username);

用戶類別

void User::setTicket(int i, int myNumbers[6], std::string username)
{
    std::ofstream fout (username + "Ticket" + a + ".txt");

    for (int i = 0; i < 6; i++)
    {
    fout << myNumbers[i] << std::endl;
    }
}

我知道,我可能必須將數組聲明為靜態的(不十分確定數組的含義或含義),並且必須使用某種形式的指針。

還請注意,用戶名和int a已在程序的其他位置聲明並可以用於其他功能,因此我不必擔心這些,並且我省去了所有不必要的代碼,例如我的include,其余程序均可以正常編譯

提前致謝

我建議使用std :: vector而不是普通數組。

您可以通過以下兩種方法進行操作,一種是這樣的:

gameObject.userInputNumbers();
userObject.setTicket(value, gameObject.getMyNumbers(), username);

您不能在此處聲明一個:

user.setTicket(int a, myNumbers[6], username);

而是使用:

user.setTicket(a, myNumbers[6], username);

另外,在傳遞數組時,無需包括數組長度:

user.setTicket(a, myNumbers, username);

此處的示例http://www.cplusplus.com/doc/tutorial/arrays/

對於您的情況,這是您的處理方式:

// arrays as parameters
#include <iostream>
using namespace std;

void SetArray (int& arg[]) {
  for (int i=0; i<arg.size(); ++i)
    cin >> arg[i];
}

int main ()
{
  int myNumbers[6];
  SetArray(myNumbers);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM