![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Voldemar2004 |
|
||||||||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Сделал класс SelectTable. Метод ReadFileToArray() - открывает текстовый файл и считывает в
Но когда использую тип std::string в методе
чтобы считать из текстового файла Name.txt имена файлов, то компилятор указывает мне на ошибку в методе:
в строке
Добавлено через 3 минуты и 28 секунд В чем ошибка ? -------------------- i_i (';') (V) ![]() |
||||||||||||||
|
|||||||||||||||
vinick |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 9.6.2005 Репутация: 3 Всего: 22 |
Тип возвращаемого значения кто указывать будет? Современные компиляторы такое не пропустят, а вот некоторые старые могут решить, что по умолчанию возвращается int. Ну и вобще, у тебя получается одна и та же специализация функции может возвращать два значения - в одном случае тип Т (return UserArray[index]), а во втором случае int (return -1). Так делать нельзя.
|
||||
|
|||||
Voldemar2004 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
vinick, спасибо, помогло.
![]()
теперь ругается на
компилятор выдает ворнинги: Function should return a value на метод ReturnElementByIndex(). Хотя значения возвращаются ? ![]() Добавлено через 2 минуты и 15 секунд Об этом я тоже хотел спросить, знал, что делал не правильно, и не знал про
-------------------- i_i (';') (V) ![]() |
||||||
|
|||||||
Alek86 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
при throw не возвращаются если ворнинг не нравится. напиши так
|
|||
|
||||
vinick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 9.6.2005 Репутация: 3 Всего: 22 |
||||
|
||||
Voldemar2004 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Всем спасибо за помощь.Вот этот код:
разве не тоже самое, что и:
-------------------- i_i (';') (V) ![]() |
||||
|
|||||
UnrealMan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
||||
|
||||
Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Borland C++ 5.02, C++ Builder 6.0, MinGW Developer Studio.
-------------------- i_i (';') (V) ![]() |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
UnrealMan, а что не так? VS на это бы написала, что не на все пути есть return..
|
|||
|
||||
Alek86 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
в моем коде не должно быть ворнинга это чисто изменение для компилятора |
|||
|
||||
Voldemar2004 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Имхо, такое изменение кода, есть тоже самое, что и:
Это сообщение отредактировал(а) Voldemar2004 - 26.9.2008, 10:59 -------------------- i_i (';') (V) ![]() |
||||||
|
|||||||
Hroft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 20.10.2003 Где: Москва Репутация: нет Всего: 3 |
Как это остались? Безусловный ретурн последней строкой метода, какой может быть еще ворнинг?
Нет, слова "иначе" нету. Ответ "Да" всегда, когда не "Нет", а не только тогда, когда не "Нет" ![]() Такая же техника может использоваться, если нужно кинуть исключение посреди рабочего кода в Java. Если просто написать throw, то компилятор ругнется на последующие инструкции как unreachable, но если написать if (true) throw, он, хотя и нахмурится на всегда выполняющееся условие, тем не менее скомпилирует. |
|||
|
||||
UnrealMan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
Насколько я помню, даже у VC++6.0 не было такого бреда с диагностикой. throw без соответствующего обработчика в пределах функции всегда заменяет return, а потому предупреждений такого рода в вышеприведённом коде быть не должно. VC++8.0 ничего не пишет. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |