Оператор switch
Собственно вопрос :)
Перевожу код с Blitz3D на C++ и вот проблема: Код на Blitz3D: PHP код:
PHP код:
Вопрос такой: Как мне на C++ перевести структуру Select(Blitz3D) на switch(C++) Пробовал так: PHP код:
Но почему то компилятор ругается на такую запись структуры... Может, что еще и не осилил в С++ подскажите... За ранее Спасибо... |
Ответ: Оператор switch
Вы имеете в виду эту ошибку?
Только переменные перечисляемого типа могут быть использованы в switch(). Если вы хотите делать switch по значению строки, можно использовать следующие способы: 1. Заменить switch() на блок if-then-else. Тут: не забывайте, что в С++ сравнение строк нужно делать через <string.h> -> strcmp(char*, char*). 2. Использовать числовое значение строки. То есть написать (или взять с интернета) функцию, которая бы возращала для каждой строки более или менее уникальный int. Следовательно сравнения будут проводится над результатом такой функции. 3. Дать объектам дополнительную переменную (аля Tag в Delphi) по которой и определять, какой объект был клацнут. Хорошего дня. |
Ответ: Оператор switch
Спасибо :)
Накатал такую функцию с возвращением int при сравнение строк: PHP код:
PHP код:
|
Ответ: Оператор switch
нафига так извращаться?
>> Может, что еще и не осилил в С++ подскажите... уверяю тебя, там дофига чего можно осиливать на протяжении лет))) открой для себя STL, старайся не использовать C-строки, юзай std::string. там спешл фо ю перегрузили оператор сравнения. но вообще хранить пункты меню в виде строк - кашмар. Их можно полностью определять в виде константного числа. а ещё лучше мб заюзать паттерн state для реализации меню.. ведь объект приложение меняет своё состояние при выборе пункта меню.. так каждый пункт будет инкапсулирован в объект со своим поведением.. |
Ответ: Оператор switch
Цитата:
|
Часовой пояс GMT +4, время: 22:59. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot