[英]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.