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

时间:2016-03-19 23:52:04

标签: c++ arrays

我不断得到数组下标需要是整数的错误,我明白了。但是,我很确定我声明我使用的下标是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, ""];
}

1 个答案:

答案 0 :(得分:1)

在表达式

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

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