gpt4 book ai didi

C++ 错误 : array initializer must be an initializer list

转载 作者:行者123 更新时间:2023-11-28 05:49:18 54 4
gpt4 key购买 nike

几天来我一直在为一段代码苦苦挣扎。我在运行代码时收到的错误消息是:
错误:数组初始值设定项必须是初始值设定项列表
accountStore(int size = 0):accts(大小){}

这里似乎还有其他人有类似的问题,但不幸的是我无法应用他们的解决方案(要么不起作用要么不适用)。

我只是想尝试创建一个类“prepaidAccount”的容器类(数组,不能使用 vector ),但我无法让容器类“storeAccount”的构造函数部分工作。请参阅下面的代码片段:

    class prepaidAccount{
public:
//prepaidAccount ();
prepaidAccount(string newPhoneNum, float newAvailBal) : phoneNumber(newPhoneNum), availableBalance (newAvailBal){} //constructor

double addBalance(double howMuch) {
availableBalance = howMuch + availableBalance;
return availableBalance;
}
double payForCall(int callDuration, double tariff) {
callDuration = callDuration/60; //convert to minutes
double costOfCall = callDuration * tariff;
if (costOfCall > availableBalance) {
return -1;
}
else {
availableBalance = availableBalance - costOfCall;
return costOfCall;
}
}

void setAvailBal(int newAvailBal) {availableBalance = newAvailBal;}
float getAvailBal() {return availableBalance;}
void setPhoneNum(string newPhoneNum) {phoneNumber = newPhoneNum;}
string getPhoneNum() const {return phoneNumber;}
private:
string phoneNumber;
float availableBalance;
};

class accountStore { //made to store 100 prepaid accounts
public:
accountStore (int size = 0) : accts(size) { }
....
private:
prepaidAccount accts[100];
}

在 main 中,我只需调用 accountStore Account;

绝对欢迎任何帮助。我最近开始学习 C++ 以及类和构造函数,所以请多多包涵。

谢谢

最佳答案

  1. 您不能使用 int 初始化数组,例如 accountStore (int size = 0) : accts(size) {}

  2. prepaidAccount 没有默认构造函数,您必须像这样编写成员初始化列表,

    accountStore(int size = 0):accts{prepaidAccount(...), prepaidAccount(...), ...} { }

数组有 100 个元素,这不是一个实用的解决方案。

作为一个建议,想想std::vector ,它有一个 constructor用具有指定值的元素的特定计数构造。比如,

class accountStore {
public:
accountStore (int size = 0) : accts(size, prepaidAccount(...)) { }
....
private:
std::vector<prepaidAccount> accts;
};

关于C++ 错误 : array initializer must be an initializer list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35596752/

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