Получение ошибки: управление достигает конца не пустой функции. Не знаю, почему - PullRequest
0 голосов
/ 16 сентября 2011

Я продолжаю получать следующую ошибку и понятия не имею, что не так

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]; 
    }
}

Ответы [ 2 ]

6 голосов
/ 16 сентября 2011

Если код не введен в оператор else, ничего не возвращается.Поэтому вам необходимо вставить возврат в конце или при вводе оператора if.

3 голосов
/ 16 сентября 2011

Если условие оператора 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];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...