数组下标不是整数,尽管被声明为 int

Array subscript not an integer, despite being declared an int

本文关键字:声明 int 下标 整数 数组      更新时间:2023-10-16

我一直收到数组下标需要是整数的错误,我理解这一点。但是,我很确定我声明了我用作下标的内容为 int。有人可以帮我看看我在哪里搞砸了吗?这是 .h 文件的.cpp。

Month::~Month() {
int size = getNumberOfDays();
for (int i = 0; i < size; i++) {
    events[i] = events["", 0, 0, ""];
}
}
void Month::deleteExistingEvent() {
cout << "What is the day of the event you want deleted? (1-31) " << endl;
int deleteDay;
cin >> deleteDay;
deleteDay = deleteDay - 1;
events[deleteDay] = events["", 0, 0, ""];
}

在表达式中

events["", 0, 0, ""]

operator[]由 4 个参数调用。它只能接受一个参数。所以,这是错误的,但错误消息的解释取决于编译器如何解析它。显然,它将其解析为单个逗号表达式作为参数。在这种情况下,前三个值将被丢弃,最后一个值(空字符串文字"")用作索引。