gpt4 book ai didi

c++ - 如何使用 void 函数从类创建数组

转载 作者:行者123 更新时间:2023-11-28 01:18:12 26 4
gpt4 key购买 nike

问题是我正在制作一个程序,它将包含 5 个银行帐户,用户在其中输入 5 组不同的名称和金额。它将获取这些集合,将它们放入一个数组中。并显示它们。我正在设置一个数组,它将要求输入 3 个输入、名字、姓氏和金额。它会将它们放入每个数组中。但是当我尝试调用它时,出现错误。

我试图通过尝试执行 void readCustomer(bankAccount users[]); 来调用它,但这也不起作用。我不知道怎么调用它。

   const int ARR_SIZE = 5;

class bankAccount{
private:
string firstname, lastname, initials;
int accountNum, amount;
public:
void readCustomer(); //will get inputs and store them
into an array.
};

int main(){
bankAccount users[ARR_SIZE];
for (i = 0; i < ARR_SIZE; i++){
users[i].readCustomer();
}

}

void bankAccount::readCustomer(){
amount = 0;
for(i = 0; i < ARR_SIZE; i++){
cout << "Reading data for customer" << endl;
cout << "First Name: ";
cin >> users[i].firstname;
cout << endl;
cout << "Last Name: ";
cin >> users[i].lastname;
cout << endl;
cout << "Amount: ";
cin >> users[i].amount;
cout << endl;
}

}

我期望让 coutcin 调用将名字和姓氏放入数组中。但是我得到这个错误:

In function 'int main()': 16:8: error: request for member 'readCustomer' in 'users', which is of non-class type 'bankAccount [5]' 16:33: error: expected primary-expression before 'users'

我不知道这意味着什么。

最佳答案

首先,我建议您使用 C++ 容器而不是 C 风格的数组。例如 std::vector。例如,使用 vector 可以让您在运行时更改帐户总数,而不是您现在拥有的固定大小(又名 5)。

但是您的代码的根本问题是相同的,因此该答案也将使用 c 风格的数组。

问题是 (IMO) 设计问题。当您创建一个名为 bankAccount 的类时,它应该代表一个 帐户。换句话说,这样的类不了解数组。然后,您可以创建另一个表示帐户集合的类,或者简单地创建一个帐户数组。

它可能看起来像:

   class bankAccount{
public:
string firstname, lastname, initials;
int accountNum, amount;
void readCustomer(); // no argument
};

int main(){
bankAccount users[ARR_SIZE];
for (int i=0; i<ARR_SIZE; ++i)
{
users[i].readCustomer();
// ^^^^^^^^
// This part gets you the bankAccount instance at index i of the array.
// The ".readCustomer()" then calls the function on that specific
// bankAccount instance
}
}

void bankAccount::readCustomer(){
// read/initialize information for the account
// Example:
// Initialize amount to zero
amount = 0;
}

关于c++ - 如何使用 void 函数从类创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57900804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com