угу а генерировать тонны говнокода из шаблона списка для каждого нового списка отличающегося только типом данных это тру ??? будет у тебя в памяти 10 совершенно одинаковых реализаций связного списка отличающегося только типом обрабатываемых данных вместо одной копии это тру да.... ? не думал почему я ядре линуха/винды из говношаблонов не генерят adt ? представь сколько там в adt разной хрени хранится теперь представьте на каждую хрень отличающуюся только типом данных свой код отбработки представьте насколькоо больше кода будет генерится да и вообще интересно чем это доставать не удобно простой макрос которому передается тип а возвращается lvalue из вот и все типонебезопасно да но чтоб прямо неудобно это слишком всю жизнь программисты на С писали обобщенные алгоритмы с помощью указателей void* и никто не ныл что неудобно но адепты с++ видители кричат что это уже не тру а Вы батенька писали на чем то кроме С++ чтоб так кричать ??? я непротив с++ даже наоборот мне многое нравится в этом языке по сравнению с С но осмотрелся бы так кричать что что то там не тру на вас как минимум косо посмотрели все те кто адептом с++ не является и пишет свои обобщенные алгоритмы через нетипизированные указатели 2Irdis а вообще это все такая хренота не относитесь к моим словам серьезно просто у меня настроение не очень и вы попались под руку прошу прощения если чем то обидел...
Пишу маленькое консольное приложение. Хочу создать меню команд. В моем случае реализация такая //Подобие моего кода int chose; cout << "Enter number of command: \n"; cin >> chose; switch(chose) { case 1: blabla() break... И так далее. Как сделать, что бы пользователь мог ввести например команду "quit", а моя программа поняла его. switch ведь не понимает типы данных string и char Я так полагаю, что мне нужно реализовать кусочек кода, где проверялось бы значение строки, и переменной присваивалось численное значение. А потом уже свич. Только как сделать не знаю. Подскажите, натолкните на мысль. Спасибо.
Вы не правы ... вот используете вы библиотеку и вам возвращают такой список. Спрашивается, что вы с ним делать будете? к чему приводить? Кто гарантирует то, что первым элементом int а вторым не Абракадабра. Или вообще, что вам вернули? На насчёт тонн говнокода. Это правда, что для всего генерируется свой класс. Но он не от балды генерируются, а по требованию. Если вы не используете List<int>, то он не генерируется. И вообще. Вы поговорите с разработчиками boost. Они вам и расскажут почему у них всё на шаблонах основано. Или они тоже говнокодеры? а вы наверно и в java(или с#) пишите class Node { Object val; Object next;//мы же тру, у нас всё не типизированно } Ну и что с такой красотой делать??? (хоть и пример плохой(в смысле generic не шаблоны) но он отражает ваш ход мысли)
мб ход моих мыслей тебе явно даст понять что ДА Я НЕЗНАЮ ГДЕ Я ОШИБАЮСЬ Я отталкивался от этого определения Code: STATIC CHAR *NAME[] = { "ILLEGAL MONTH", "JANUARY", "FEBRUARY", } массив указателей на char. строка вида "aaa" есть ничто иное как {'a','a','a','\0'}, в свою очередь каждый символ из этого массива есть ни что иное как однобайтовое число которой можно привести к int. Ну вот я и решил а что б собсно не сделать так как сделал я. И тут я видимо все перепутал. Выше приведенный массив я понимаю как двумерный с переменным числом элементов в каждой строке, как раз благодаря указателям. С числами видимо такое не канает. И нет иного способа как явно определять сначало Code: int *mas = new *int[x]; а потом пробегать каждый элемент и делать Code: mas[i] = new int[y]; Но это же равносильно тому чтобы сделать Code: int *mas[x]; for(int i=0; i<x; i++) { int TempMas[i]; mas[i] = TempMas } Тобишь я хотел статически определить двумерный массив с переменным числом элементов в каждой строке. Но да я както пропустил тот момент что к первому массиву обращаться можно только так NAME получаем всю строку (адрес первого элемента строки которой храниться в NAME). Ей богу не понимаю где я ошибаюсь Основательно запутался я.
С чего ты взял, что он двумерный? Вот пример двумерного: int mass[N][M]; Ты конечно извини, но дальше я даже вникать в твои слова не стал, ибо такая чушь.
Code: int _tmain(int argc, _TCHAR* argv[]) { return 0; } народ наверное банальный вопрос =/.с билдера пересел на вижлу(2010).не могу понять почему main имеет название _tmain да ещё и с атрибутами.с простой заменой на int main(){}; конечно работает но все же хотелось бы узнать досконально все.и ещё вопросик нубский: объявления класса где нужно писать?в функции или можно просто после объявления библиотек?в книжке по которой это учу об этом ничего не сказано
Скорее всего при сбоке проекта линкеру указывается именно этот Entry Point в программу, так что ничего страшного.
Как в Turbo C определить ширину экрана, но не в точках, а в символах. Грубо говоря, как узнать максимальную длину строки, которая может поместиться на экране без переноса.
Возник маленький вопрос, выполняю пост запрос для авторизации, как получить ссылку на которую идет редирект в libcurl
А если делать проект типа winAPI то она еще както по другому называться будет, главное что среда всегда знает как она называется и всегда с нее начинить будет. Code: int _tmain(int argc, _TCHAR* argv[]) с помощью этих параметров можно передать в функцию _tmain (main) значение из внешней среды при вызове программы argc это колличество переданных параметров argv это сами параметры в виде массива указателей на строки (_TCHAR это через третье колено дефайленый char) стандартно первый параметр в argv это имя вызываемой программы поэтому argc как минимум всегда равен 1. Для того чтобы получить все переданные параметры можно воспользоваться записью Code: while(--i>0) cout<<argv[i]; Я могу немного путь с типами, так как давно в VS не работал да и вообще все их эти милиарды типов не знаю. Вот почитай, тут как раз это обсуждается сюда
отлично ты в int положил string ?) ай да волшебник. Выход только один, читай все как Code: string chose; cout << "Enter number of command: \n"; cin >> chose; if (chose == "quit") return 0; switch(atoi(chose.c_str())) { case 1: blabla() break... atoi
у кого есть ссылка на данные книги: Ален Торн Direct X9. Осваиваем 3D-пространство либо Ален Торн Графика в формате DirectX 9. Полное руководство по использованию 3D-пространства
Дайте совет плиз. Изучил синтаксис с++ и немного win api . Хочу поучиться писать программы под интернет(парсеры, проги для автоматизации работы с сайтами, другие клиентские приложения). Незнаю с чего начать вообще(( Слышал про такие вещи как сокеты, Curl, WinInet, http и в голове полная каша. Искал в гугле инфу-ничего систематизированного, лишь отдельные куски кода по которым ничего не понятно. Подскажите что для таких целей мне поучить и если несложно тыкните носом где информацию более менее полную найти, заранее спасибо.
Пример работы с TCP протокол на winsock: https://forum.antichat.net/showpost.php?p=373579&postcount=6 (все идеально работает там, главное подменить тот ip (куда будет все отправляться) на текущий ip античата) Литература: рекомендую М. Фленов "Delphi в шутку и в серьез", там хорошо рассмотрен winsock