Помогите начинаюшему
Warning: float to int possible loss of data
Так как выбрать, чтобы abs() работал с float:{
Скажите вот простая функция abs() в MicroVis C++ предлагает выбрать разные типы входных аргументом (параметров). Я выбираю float, а транслятор пишет
Warning: float to int possible loss of data
Так как выбрать, чтобы abs() работал с float:{
Для общего развития:
есть флоатовская ф-ция abs - fabs (ей уже лет 15)
Для общего развития:
есть флоатовская ф-ция abs - fabs (ей уже лет 15)
а эта работает с любыми числовыми типами данных :)
а эта работает с любыми числовыми типами данных :)
Макрос достаточно опасная штука. Она не производит проверку типа. И если ей передать какую-нибудь структуру, то неизвестен результат выполнения...
Макрос достаточно опасная штука. Она не производит проверку типа. И если ей передать какую-нибудь структуру, то неизвестен результат выполнения...
Макросы вообще не оправдывают доверия к ним.
У меня за время их использования ни разу польза
от них не компенсировала головную боль, связанную
с поиском ошибок и т.п.
Мой ответ макросам - шаблоны:D
Мой ответ макросам - шаблоны:D
Макросы, к сожалению, невсегда можно заменить шаблонами.
AFMe(субъективно) так макрос-функции они еще и признак дурного тона (вроде goto)
макросы - это подстановка лексемы ПЕРЕД КОМПИЛЯЦИЕЙ !
- а шаблоны - обеспечивают непосредственную
поддержку обобщенного программирования !!
- ЧТО тут менять - ???????????????
макросам - шаблоны ???????
макросы - это подстановка лексемы ПЕРЕД КОМПИЛЯЦИЕЙ !
- а шаблоны - обеспечивают непосредственную
поддержку обобщенного программирования !!
- ЧТО тут менять - ???????????????
Ты просто не родился WidowMaker'ом, которые умеет использовать шаблоны в качестве макросов)))
char inter[6];
void SM_Console(char *p)
{
if(inter=="next") std::cout << "Yes";
if(inter!="next") std::cout << "No !";
}
void main()
{
std::cin >> inter;
SM_Console(inter);
//здесь чтобы можно было увидить результат {
char s;
std::cin >> s;
// }
}
Как ни странно но даже если inter="next" то на выводе всегда будет NO ! :???: :-?
Если позволите, то еще вопрос:
char inter[6];
void SM_Console(char *p)
{
if(inter=="next") std::cout << "Yes";
if(inter!="next") std::cout << "No !";
}
void main()
{
std::cin >> inter;
SM_Console(inter);
//здесь чтобы можно было увидить результат {
char s;
std::cin >> s;
// }
}
Как ни странно но даже если inter="next" то на выводе всегда будет NO ! :???: :-?
Все верно, ты передаешь только первый символ.
Кстати если кто-нибудь кода-нибудь писал конечные автоматы, то знает что goto это не признак дурного тона, а всего лишь удобный оператор безусловного перехода. Стили бывают разные...
{
if(!strcmp(iter,"next"))std::cout << "Yes";
else std::cout << "No !";
}
2 alibabaich:
AFMe(as for me)-это только мое, конечно же
субъективное, мнение.
2 3D Bob : эт точно
Мысль была в опасности(не удобстве работы с большими проектами) увлечения использованием макросов.
Все верно, ты передаешь только первый символ.
Кстати если кто-нибудь кода-нибудь писал конечные автоматы, то знает что goto это не признак дурного тона, а всего лишь удобный оператор безусловного перехода. Стили бывают разные...
Скорее даже не символ, а указатель на самый первый символ. Вот так правильней.
Скорее даже не символ, а указатель на самый первый символ. Вот так правильней.
Да...
Использование макросов не является обязательным.
Применение шаблонов - тоже не является обязательным. :)
Минус шаблонов в том, что параметром шаблона может быть только интегральный тип. Поэтому к примеру не получится склеить две строки, что можно сделать с помощью макроса.
P.S. Я говорю о времени компиляции.
Применение шаблонов - тоже не является обязательным. :)
Минус шаблонов в том, что параметром шаблона может быть только интегральный тип. Поэтому к примеру не получится склеить две строки, что можно сделать с помощью макроса.
P.S. Я говорю о времени компиляции.
Согласен.
А нельзя чуть-чуть по подробнее про шаблоны, вещь все-таки редкая или наравне с операцией (=) присвоения :)
Не понял каламбур про операцию присвоения.
А вот шаблоны не такая уж и редкая вещь. Все зависит от степени владения языком С++ и опытом его применения.
Что именно тебя интересует про шаблоны?
Желательно вопросы выходящие за рамки описанные Страуструпом.
Например, я вообще не представляю как я бы жил без контейнеров.