我一直收到以下错误,我不知道什么是错的
cc1plus: warnings being treated as errors
scene.cpp: In member function ‘Image* Scene::getpicture(int) const’:
scene.cpp:179: error: control reaches end of non-void function
以下是错误所在代码的一部分:
Image* Scene::getpicture(int index) const {
if(index<0 || index >maximum)
cout << "invalid index" << endl;
else {
return images[index];
}
}
答案 0 :(得分:5)
如果代码未输入else
语句,则不返回任何内容。因此,您需要在结尾或输入if语句时插入一个返回。
答案 1 :(得分:3)
当if
语句的条件为真时,该函数不返回值,因为在这种情况下没有执行return
语句。
您需要返回一个值(或抛出异常)。例如:
Image* Scene::getpicture(int index) const {
if (index < 0 || index > maximum) {
cout << "invalid index" << endl;
return NULL; // Return NULL in case of an invalid index
} else {
return images[index];
}
}