| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Путь программиста |
| Автор: Mikkk 22.12.2005, 11:56 |
| Всем привет! Вот меня интересует вопрос дальнейшего изучения C++. В каком порядке изучать следующие этапы. Думаю нужно вот так: 1) Сам язык C++ (азы) 2) Библиотеку STL 3) Visual C++ (азы) 4) MFC 5) Системное программирование (API) 6) Аппаратное программирование 7) Написание драйверов Вот таков мой вывод... Как думаете что тут нужно поменять местами или дополнить? Я не вписал сюда еще что-то типа WTL...(сам пока еще плохо понимаю что это значит) Жду от Вас наилучшех изменений! Всем Спасибо! |
| Автор: Neitron 22.12.2005, 12:00 | ||
ВСЁ. Остальное не учится, а используется по мере необходимости со справочником. Из всего этого самым важным является третий пункт. |
| Автор: Dark Elf 22.12.2005, 12:02 | ||
Ты полностью прав но наверное опять вставлю свои пять копеек по поводу необходимости изучения BOOST (отпадает нужда в изобретении кучи своих велосипедов типа многомерных массивов). |
| Автор: Guest 22.12.2005, 12:07 |
| Понятно! А как же Visual C++? Его ведь надо учить... По справочникам его думаю не выучить... или выучить? Всё же думаю к Visual C++ надо подходить серьезно...(ИМХО)... |
| Автор: Mikkk 22.12.2005, 12:08 |
| Понятно! А как же Visual C++? Его ведь надо учить... По справочникам его думаю не выучить... или выучить? Всё же думаю к Visual C++ надо подходить серьезно...(ИМХО)... |
| Автор: Neitron 22.12.2005, 12:08 |
| Скажи мне пожалуйста, что там учить? Интерефейс пользователя? Не более одного дня. |
| Автор: Mikkk 22.12.2005, 12:11 |
| Ну не знаю, я видел в магазинах большие книги во Visual C++... Например есть спец. книги для перехода с C++ на Visual... Всякие классы WIZARD там...)) Думаю API тоже знать надо, помимо C++ и Visual C++... ...ИМХО... |
| Автор: chaos 22.12.2005, 12:15 |
| как я учился 1) C - основы 2) C++ - основы 3) Win32 - основы 4) MFC - основы 5) C++ - подробно 6) STL - основы и подробно 7) COM - основы 8) Win32 - подробно 9) MFC - подробно 10) QT - основы на очереди стоит .NET for VC++ |
| Автор: Neitron 22.12.2005, 12:15 |
| В этих толстых книгах, в основном описание самого языка С++ и MFC Ты хочешь учить API? Вперед несколько десятков тысяч ф-ций. Причем с каждой новой виндой происходят изменения. С переходом на Windows VISTA забудь про АПИ и MFC. |
| Автор: TeeT 22.12.2005, 12:16 | ||||
Ты сам в каком порядке учил? И еще вопрос: а какими методами? |
| Автор: Neitron 22.12.2005, 12:19 |
| TeeT С++ и STL сначало азы, потом Страуструп. Далее работаю в борланде VCL вообще не учил, все что надо в Хелпе. Написал серьёзный проект. API - Рихтер, Пецдольц. Кароче много чего |
| Автор: Mikkk 22.12.2005, 12:20 |
| Neitron, ясно... Ну ведь есть такие API которые очень сложно подключить?! Как же их подключать без знаний? Что для этого надо знать? |
| Автор: Neitron 22.12.2005, 12:21 | ||||
MSDN Обычно все подлкючается элементарно, lib + h файл
С++ на зубок, все остальное по мере необходимости. |
| Автор: Mikkk 22.12.2005, 12:24 |
| Neitron, точно MSDN... C++ не азы , где искать? Страуструп? Что еще посоветуете? |
| Автор: TeeT 22.12.2005, 12:25 | ||||||||
Я думаю что нельзя определять какой либо порядок вообщенадо учить так как учится ;)
об чем? один? продал? покажи
Румянцева почитай советую
Это точно!!! |
| Автор: Neitron 22.12.2005, 12:27 | ||
Я работаю, на работе и пищу ПО. Подробности оглашать не буду. |
| Автор: chaos 22.12.2005, 12:27 | ||
а вот глянь http://anatolix.naumen.ru/Books/CPlusPlus?v=v3z сам конечно читал одну книгу какогото математика московского универа, и плюс лежит у меня монография Страуструповская в 2 томах |
| Автор: Mikkk 22.12.2005, 12:39 |
| chaos , спасибо ! |
| Автор: TeeT 22.12.2005, 12:40 | ||||
жал
Да бумажные книги лучше |
| Автор: chaos 22.12.2005, 12:42 | ||
безспорно!!!! Добавлено @ 12:43 а вообще главное не насколько хорошо ты знаешь различные апи(хотя тоже надо), а насколько хорошо ты умеешь все это применять!!! Добавлено @ 12:45 и что лутше подходит для данной ситуации |
| Автор: Mikkk 22.12.2005, 13:29 |
| chaos, вообще долго нужно учится их подклучать? Просто есть простые функции(просто подключаемые), а есть которые супер сложно подключить... Конечно может я не совсем хорошо выразил свою мысль...но думаю поняли |
| Автор: Mikkk 22.12.2005, 13:30 |
| chaos, я имею ввиду API... |
| Автор: Mikkk 22.12.2005, 13:43 |
| Еще вопрос... Надо ли узучать Алгоритмы? Всякие фишки связанные с Алгоритмами? Постраение Алгоритмов и их например Анализ... |
| Автор: chaos 22.12.2005, 13:47 | ||||
| ни че не понял что подключить? если ты имешь ввиду подключать библиотеки, то в принципи ни че сложного нет
если наджо либу подключить
и лутше бы по конкретнее вопрос |
| Автор: Neitron 22.12.2005, 13:53 |
| Чо за windowsx.h |
| Автор: pablo 22.12.2005, 14:22 |
| Кстати нащёт MFC, сразу её трогать может и не стоит, для начала можно попробовать попрограмить с Qt, потом с MFC програмить станет намного легче. А изучать Qt намного приятнее чем MFC. |
| Автор: chaos 22.12.2005, 14:49 | ||
а ты посмотри там описанны "взломщики" сообщений пример что бы добавить в листбокс строку надо сделать SendMessage(.....) а тут ты просто ListBox_AddString(hwndCtl, lpsz) и все!!! |
| Автор: Mikkk 22.12.2005, 15:11 |
| chaos, я имел ввиду сами функции АПИ... Например Beep() подключить просто...а есть такие какие сложно... pablo, что такое Qt? Расскажи, просто я новичок... |
| Автор: chaos 22.12.2005, 15:50 | ||
не пойму твое не здоровое беспокойство по поводу подключения. не переживай ты за это! |
| Автор: Dark Elf 22.12.2005, 16:18 | ||
http://www.trolltech.com Лучшая библиотека для построения пользовательского интерфейса для С++ |
| Автор: Janus 22.12.2005, 17:13 |
| Да нет таких функций, которые "очень сложно" подключить. Любые DLL подключаются одинаково, ну кроме СОМ. У меня порядок следующий: Turbo Pascal PHP Delphi Perl Assembler Сейчас учу С++. Попутно осваиваю диалект паскаля, используемый в FreePascal со всеми особенностями компилятора. |
| Автор: Mikkk 22.12.2005, 21:09 |
| Народ, а где можно получить инфо насчёт всяких HANDLE, LPCSTR(помойму так), hWND(помойму так), не помню как точно эти назваия пишутся, но думаю Вы меня поняли что я имею ввиду... Это это значит? Везде вижу, но не знаю что это именно... Где про это можно узнать? Почитать? |
| Автор: Mikkk 22.12.2005, 21:11 |
| И всякие там DWORD... |
| Автор: blackofe 22.12.2005, 22:41 |
| MSDN Library |
| Автор: Janus 23.12.2005, 12:38 |
| Да плюнь на это - просто некто из МайкроСофт любит геморой. Вот все типы: char int float double И к ним префиксы unsigned long short Самые главные типы: unsigned char int unsigned int Плюс указатели: char* Все! Остальное можно на свалку. Например: Handle - int LPCSTR - unsigned char* HWND - int Dword - unsigned int |
| Автор: Neitron 23.12.2005, 12:44 | ||
Поправка.
Забей на все. Начнешь программировать все поймешь...!!!!!!!!!!!!!!!!! |
| Автор: Janus 23.12.2005, 17:19 | ||||
Тут главное не сам тип, а количество байт. АПИ устроены так, что любые аргументы или результаты занимают по 4 байта. Все! Остальное нафиг не надо. Вот смотри абсолютно работающее объявление: int __stdcall GetProcAddress(int hModule, char *lpProcName); int __stdcall FreeLibrary(int hdll); |
| Автор: blackofe 23.12.2005, 18:16 | ||||
ну почему же? имхо, читабельность программы от этого только выигрывает. и если функция принимает или возвращает HWND, то сразу понятно, что не просто "какой-то" int, а хэндлер окна, тем самым уменьшается вероятность, что ты его, скажем, умножишь на чего-нибудь. Добавлено @ 18:23
COM-овскую dll ты можешь очень даже просто подключить. и поиметь доступ аж к четырем функциям DllCanUnloadNow, DllGetClassObject, DllRegisterServer и DllUnregisterServer. |
| Автор: profispb 28.12.2005, 00:23 |
| Лично я Учил так 1) ASM в изучении основ. 2) QBasic - основы 3) VisualBasic - средний уровень 4) Pascal - основы и далее 5) C - основы и далее 6) C++ - основы, остальное стадии изучения. 7) Delphi посмотрел тот же Pascal, если не вдоваться в подробности. А вообще при знании основ всех этих яыков можно изучить любой ЯП. Народ ASM решает все ЯП, мало занимает и легко компилируется.(труден в изучении). |
| Автор: GrayCardinal 28.12.2005, 06:49 |
| ИМХО... Перед первым я б поставил Ассемблер. Потом 5, 6, 7 пункты, потом все остальное. СТЛ вообще ни разу не пользовал. Не понимаю я ее. Предпочитаю велосипеды собственного изготовления. Простые конструкции и так пишутся "махом" а со сложными + СТЛ больше заморочек. "Си++" заменил бы на стандарт "Си". Половина WinAPI и MFC - красивая обложечка для простых open/read/write/snprintf MFC учить не надо. Просто просмотреть да попытаться что-нибудь написать. Далее читать как фантастику по мере необходимости. |
| Автор: OneFourth 19.12.2006, 14:28 |
| С выходом Висты WinAPI и MFC становятся не актуальны... |
| Автор: bsa 19.12.2006, 16:16 | ||
руки отрывать бы за такое надо. sizeof(int) не всегда равно sizeof(void*) (пример - 64-х битные системы). |
| Автор: Oleg_Ci 19.12.2006, 18:48 | ||
1) прекратить задавать вопросы 2) начать на эти вопросы самому отвечать |
| Автор: En_t_end 19.12.2006, 19:32 | ||||
Согласен. Переносимость тем самым обеспечивается на некоторые специфичные системы. Добавлено @ 19:37
|
| Автор: Любитель 20.12.2006, 16:38 |
| Мои рекомендации: 1. Язык + STL. Мне нравиться в этом плане "Thinking in C++", на русском - "Философия С++". 2. Boost. Не весь но многое. 3. Основы Qt. Лучшей альтернативы сегодня нету. Подробности легко изучаются по мере работы над проектом. Учимся читать доки. Мой путь (не повторять - опасно). Скажу пока кратко: 1. QBasic. 2. PL1 3. VB + VBA 4. Pascal 5. Delphi. Основы VCL 6. MFC 7. Некоторые элементы Windows API. 8. C++ 9. STL 10. Boost 11. Qt. Впрочем уже изучение в три щелчка. Доки рулят. 12. и т. д. |
| Автор: zabivator 21.12.2006, 11:06 |
| Начал с Паскаля, спустя месяц перепрыгнул на С++, пишу на нем пятый год, ни разу не пожалел. Итак: С++ - по Страуструпу, втыкаем внимательно главу, потом делаем задания после нее, отвечаем на вопросы. После этого переходим к следующей. После освоения Страуструпа ты получишь минимальную культуру программирования на С++. После этого познакомься поплотнее с stl, Джотисьюса ( правильно фамилию написал, нет? ) по STL осиль. Далее познакомься ( познакомься, а не изучи +) ) boost. После этого - по вкусу. Гуй - это Qt, сеть - ace ( boost.asio как альтернатива ), 3d-графика - opengl. Для затравки, я думаю, хватит. |
| Автор: Rohoss 23.12.2006, 05:04 |
| А как оценити мою первую более-менее нормальную прогу на сайте http://killntgenerator.nm.ru/ ??? |
| Автор: MONSTER 23.12.2006, 06:29 |
| Злобная у теюя программа, хотя ето может быть полезно если одна тварь мне коечо завтра не принесёть Я вот какбы только начинаю програмировать, сначала писал скрипты, даже сайт сделал правдо очень корявый, а сейчас пытаюсь учить C++. Заодно хотелось бы узенать где взять етого вашего Страуструпа, а ещё меня почемуто манит на DLL, может кто подскажет инфу как их делать и как пользовать |
| Автор: EvgenZ 23.12.2006, 14:06 |
| а зашибись, работает!!! Послал ссылку подруге, она оказалась настолькоумна, что запустила и теперь сидит злая. МОжно как-нибудь восстановить? |
| Автор: Rockie 23.12.2006, 14:36 | ||||
Коли на DLL манит... Ежель тебе эта тварь Страуструпа принесет то оно сподручней будетъ. Ты, значить, Страуструпом эту DLL, Страуструпом..
EvgenZ, там вирус чтоли? |
| Автор: Любитель 23.12.2006, 16:01 |
| EvgenZ, с консоли восстановления винды введи ренейм этого файла (диром посмотри как он называется) на ntldr. |
| Автор: EvgenZ 23.12.2006, 16:06 |
| Уже сотворил, по телефону. На самом деле не очень хитро она работет... загрузку надо выносить из папки программы ее удаление лечит комп. |
| Автор: Любитель 23.12.2006, 17:48 |
| Интересно, а у кого-нибудь был более извращенский путь, чем у меня? |
| Автор: Rockie 23.12.2006, 18:32 |
| Любитель, всмысле сначала MFC, а потом С++? |
| Автор: Любитель 23.12.2006, 18:34 |
| В том числе. |
| Автор: MONSTER 23.12.2006, 18:37 | ||||
А можеть гденибуть в интернете есть? |
| Автор: zabivator 23.12.2006, 18:43 |
| http://doks.gorodok.net/?p=8&smenu=y - здесь есть Страуструп, и не только. http://doks.gorodok.net/?p=548 - а в этой книге много про WinAPI, а также про DLL |
| Автор: MONSTER 23.12.2006, 18:59 |
| ПАсибо, но вот тока нет ли версии для скачивания, а то уменя интернеть токо вечером Кстати кто во сколько лет начал програмировать? Я вроде как примерно в 13 стал пробовать |
| Автор: Rohoss 23.12.2006, 21:43 |
| Так вот! Написал я эту прогу http://killntgenerator.nm.ru/Kill_NT_Generator.rar но это далеко не значит, что я офигенный программер! На самом деле я не понимаю что такое клас, ссылки и многое другое... Прога написана восновном на VCL Билдера и немножко функций апи, что такое STL Boost Qt понятия не имею. Я не говорю, что это хорошо, я говорю, что это очень плохо. Надо исправлятся. Начну знач отвликать людей на форуме... Для начала вдолбите мне пожалуйста в голову. что такое ссылка? И зачем она нужна типа p *t? Буду очень благодарен! |
| Автор: Любитель 24.12.2006, 10:49 |
| Прочитай прикреплённую тему. Там достаточно неплохо рассказывается. ("Указатели. Строки. Классы"). Хотя и не всё, конечно. |
| Автор: bsa 24.12.2006, 13:22 | ||
Никто и не думал, что ты "офигенный" и тем более "программер". Программеры подобным не занимаются. Одного не понимаю, как ты смог написать программу на VCL, не зная понятия class и тем более ссылка?!? Там же все на этот и держится! |
| Автор: Rohoss 25.12.2006, 18:00 |
| Держится то на этом… Но для того чтобы писать простые программы достаточно знать понятия «компонент», хотя компонент и является классом. |
| Автор: ip127001 26.12.2006, 10:25 |
| что лучше Visual or Borland что лучше |
| Автор: zabivator 26.12.2006, 18:26 |
| ip127001, Borland та еще какашка. На него у нас в конторе ( из тех кто поддерживает старые продукты от борланда ) плюются и матерятся. Говорят, что МФЦ под студией, и то лучше. А от МФЦ плюются все, кто пишет под студией =) От гуя не плююсь только я, я пишу на qt =) А qt на компилятор пофигу =) Поэтому лучше использовать максимально близкий к стандарту - gcc, т.е. mingw если под венду +) |
| Автор: SAnty 26.12.2006, 19:04 |
| Привет Думаю у каждого свой путь в программировании (я начинал с Watcom C/C++, Borland C/C++ в конце 80х). Если только начинаешь возьми книгу серии "Класика Computer science" Р.Лафор "Объектно-ориентированное программирование в С++" и Стивен Прата "Язык программирования С++". Выучишь язык, потом будешь выбирать ГУИ. Их сейчас множество. И каждая библиотека имеет что-то хорошее и что-то плохое. Спасибо. |
| Автор: Vyacheslav 26.12.2006, 19:21 | ||
Ответственно заявляю и им можете передать. Плюются, потому как писать не умеют |
| Автор: zabivator 26.12.2006, 19:50 |
| Vyacheslav, программисты с опытом 15-20 лет? Ой сомневаюсь. Там очень много граблей, которые нужно просто знать как объезжать. Один, например, пробовал переписывать кривые места. Переписал один класс. Потом второй, третий... А потом подумал - а зачем оно ему надо? И забил на Билдер. |
| Автор: Vyacheslav 27.12.2006, 11:54 |
| 1 Компилятор Пока Borland нормально занимался поддержкой C++Builder, компилятор постявлеемый с ним на конец 20 - начало 21 века считался одним из самых ANSI-совместимых компиляторов для платформы Windows, а возможно и не только для Windows. Только начиная с VC7 компилятор от MS начал немного опержать Borland. А тогда какие проблемы могли возникнуть у программистов с опытом 15-20 лет с ANSI -совместимых компилятором? 2.VCL - это достаточно добротно с точки зрения ООП сделанная библиотека. Все применяется по делу : наследование, инкапсуляция, полиморфизм. Продуманная система обработки исключительных ситуаций. Здесь, по крайне мере, не увидете типа: создаем экземпляр класса, а потом вызываем его метод с целью проверки - все ли успешно создано. Единственная проблема -это, то что в основе VCL лежат дельфийский классы и соответственно, они и классы, унаследованные от них, в определенных ситуациях ведут себя иначе, чем это предусмотрено стандартом. Но во-первых, это четко оговорено в документации, и во-вторых распространяется только на VCL-классы ( отнаследованный от TObject). А в таком случае, какие могут быть проблемы у программистов с опытом 15-20 лет с библиотекой, построенной в соответствии с парадигмой ООП? 3. Проблема может быть только в одном. Наличие парадигмы визуального программирования. Сама по себе она неплоха, но к сожалению провоцирует на бездумное использование. С помощью ее вполне можно создать достаточно сложное приложение совершенно не зная ни ООП, ни самого С++. С этим я согласен. Только причем здесь Borland и компилятор. В конце концов каждый решает сам, кем он собирается идти по жизни : вечным ламером или мастером своего дела |
| Автор: JackYF 27.12.2006, 12:15 |
| Vyacheslav, у меня нет такого опыта, как у тебя, но тем не менее, я тоже не один год сидел на Борланде. Сначала C++ Builder 6 - года 2, затем месяцев 8 - BDS2006... Начнем с того, что Builder 6 не компилирует в режиме ANSI-компиляции STL, поставляемую с ним... Это ANSI-поддержка?.. BDS хоть компилирует. Правда, все равно варнинги выдает... С шаблонами тоже далеко не все гладко... Конкретных примеров привести не могу, но казусы бывали... То что, ошибка в 1 строчке кода может выдаваться фиг знает где, в том числе в системных хедерах...(в нешаблонном коде). Ну а про количество глюков, критических и не очень(от боков редактора до вылета всей среды без всяких причин) я знаю не понаслышке... Отладчик хороший, но тоже далеко не идеальный - те же вылеты с посыланием куда-то подальше, приблизительно к bordbk61.dll или что-то в этом роде... |
| Автор: Vyacheslav 27.12.2006, 13:11 | ||
Простите. А Вам , что нужно? Соместимость, или чтобы компилятор следил за Вами, что бы Вы, не дай бог, не написали лишнего. Пишите, соблюдая стандарт и используйте режим Borland. К сожалению, посеял ссылку на сайт, где выдавалась таблица прохождения теста на совместимость со стандартом различных компиляторов. И к моменту выпуска версии 5.5 борландовский компилятор смотрелся там весьма не плохо. Насчет глюков, я осведомлен не хуже Вас. Есть и криминальные. Количество? Уверяю Вас, их не больше, чем у других. Только опять причем здесь это? Или будете утверждать, что у других производителей они отсутсвуют? В конце концов, я не собираюсь спорить, что хуже, что лучше. Мне это не интересно, хотя бы по той причине, что последние два года к С++ Builder не прикасался. Но фразу, с которой началось компилятор от Borland явно не заслужил. |
| Автор: JackYF 27.12.2006, 13:44 |
Да вот нужно! А как еще иначе проверить, совместив написанный мною код со стандартом или нет? Борланд-то в своем коде разрешает примочки делать, которых в стандарте нету... Да и вообще - нехорошо это... Вылетала ли у Вас VS безо всяких причин во время просто набора текста? При отладке материлась ли жуткими словами на себя же и точно так же вылетала? У меня - нет. согласен. Но считаю, что Borland наконец-то должна нормально оттестировать то, что она предлагает на рынок, а не гнаться в сроки - успеет выйти до новой версии VS или нет... P.S. Я ни в коем случае не ратую за VS. |
| Автор: Любитель 27.12.2006, 17:39 |
| В плане совместимости со стандартом. Если брать старенькие версии, то тут ни в коем случае не борланд и не MS. Сразу признаюсь - современную BDS только в идел, толком сказать о ней ничего не могу. Если же брать более старые версии билдера, то в плане стабильности это жуть. Действительно ошибки в самой VCL становятся нормой. У MS этого не было даже в извращенском VC++ 6. А вообще Eclipse рулит Наконец таки проектирование VCL. Если сравнивать с MFC - неплохо. А как таковое - ничего хорошего. С VCL у меня работа в основном на Дельфи (вынужденно Опять таки просьба к модератором, отделить от этой темы кусок в холливары. Хотя она меня не особо интересует, но просто так, наверно, правильней. |
| Автор: Vyacheslav 27.12.2006, 18:18 | ||||
Просто немного почитать стандарт. да вообщем и читать то особо не надо. Все расширения начинаются с двух ___
У меня и Builder НИКОГДА не вылетал при наборе текста. Не вылетал он и при отладке. Чего не было, того не было. |
| Автор: Любитель 27.12.2006, 18:26 |
| Vyacheslav, не только в расширениях дело. Куча кода в борландовском компилере не будет компилиться, хотя по стандарту должна. Посмотреть на различные библиотеки, использующии современные возможности плсюов и постоянные замечания, что в борланде это не работает, здесь пришлось создать воркэраунд и пр. |
| Автор: JackYF 27.12.2006, 18:26 | ||||
Не совсем... Пример: код, принятый на ура в Билдере, вызвал кучу варнингов в том же GCC... причем по делу.
У меня, к сожалению, было и то, и другое. И не один десяток раз. |
| Автор: Vyacheslav 27.12.2006, 18:30 | ||||||||
Стандарт появился в 1998 году.
чувствуется, что MS Вы вобщем то и не работали.
Ну тогда уж "со всей ответственностью" укажите в чем ужас Конечно рулит Добавлено @ 18:35
ОПС. А что , стандарт задает варниниги? И кстати, на Builderе, Вы небось при выдаче варнингов использовали Selected. При наборе кода? И Builder был купленный? Да я бы на Вашем месте всех на уши поставил |
| Автор: Любитель 27.12.2006, 18:55 | ||
С самого начала - обработка событий. Через колбэк-функции (в Дельфи это так в чистом виде, в билдере через __event - впрочем то же самое) в ООП? По-моему это не ООП
А вам gcc не нравиться? Нет, но они всё же тоже ниоткуда не берутся и что-то означают С последним пунктом, признаюсь - виноват. Однако и VS (кроме экспресса) не ориджинал. Однако на неё не жаловался (в плане тупых глюков). В том числе даже на шестёрку (её можно и нужно обругать в остальном плане, но всё же стабильная). |
| Автор: Vyacheslav 27.12.2006, 19:27 | ||||
Счас. ООП - это общий подход. И стиль программирования никого отношения к ООП не иммет И кстати, С++ далеко не лучший вариант для реализации ООП.
Какие возможности? Единственная возмржность - множественное наследование, которое и в ООП ставится под сомнение. Тем более, что в 6-ом разрешили множественное наследование интерфейсов. Решение с __closure ? Может быть Что каксается TList Это да. Только вот применяюся они в связи со совместимостью Delphi, а там все классы унаследованы от TObject. И кто мешает Вам воспользоваться тем же stl и использовать ее возможности. А присобачить любой stl контейнер к тому же TListView - раз плюнуть. Причем, что характерно, даже ничего переписывать не придется. Просто нужно грамотно воспользоваться событиями, которые против которых Вы тут так ополчились. |
| Автор: Любитель 27.12.2006, 19:31 |
| Ну-ну. Если брать чистое ООП - то оно да, общее. Но вот те же проперти тоже становятся идеологической частью проектирования. Да и ужасные ивенты тоже... |
| Автор: Vyacheslav 27.12.2006, 19:50 |
| Да что в них ужасного? Вам дали возможность менять поведение объекта определенного класса, не переписывая сам класс. Как Вы правильно заметили возможность эта реализована по принципу callback. Но вся проблема в том, что в качестве callback-функции может быть использована обычно либо только free function, либо static member function. А решение __closure позволяет использовать не просто метод класса, а условно говоря - "метод объекта", так как по адресу передается не только указатель на метод класса, но и указатель на экземпляр этого класса. Что же здесь плохого? Прошерстите форум, и Вы увидете, что часто задается вопрос:"Как передать в качестве callback функции метод класса?" И следует ответ - "Никак". Вот __closure и были призваны решить этот вопрос. |
| Автор: Любитель 27.12.2006, 20:02 |
| Млин, для подобных целей есть гораздо более цевильные вещи. STL когда нужно использовать настраиваемый критерий сортировки, скажем, по другому поступает. boost::function - обобщает это решение. |
| Автор: JackYF 28.12.2006, 14:03 | ||||||
Не волнуйтесь, я знаю, как в Билдере включать все варнинги
Вы имеете в виду - лицензионный? Нет. Но на уши я всех поставил , кого нашел С разработчиками Борланда не знаком. Думаете, они не знают про свои глюки?
ИМХО присобачивать STL - контейнеры к VCL - классам - то еще извращение. |
| Автор: Vyacheslav 28.12.2006, 15:23 | ||||
Ну ткните, где Ваши глюки описаны в QualityCentral?
Использовать STL - извращение? Ну тут я с Вами не соглашусь |
| Автор: JackYF 28.12.2006, 18:59 |
Извращение - использовать STL для обработки VCL - контейнеров. Например, представьте STL - алгоритмы для обработки AnsiString? По-моему, нецелесообразно и не очень красиво... У STL достаточно своих контейнеров, причем более общих, чем VCL-вские... если брать обработку самих данных, а не событий и сообщений... Если уже работать с данными из VCL-контейнеров, то сначала перегоняем их в STL-контейнеры, работаем. Потом,если надо, производим обратные действия... Добавлено @ 19:02 При чем тут Quality Central? Я даже не знаю, что это такое И больно мне надо это? Глюки, извините, не специфические, а очень даже общие. В том же BDS бывает, что выскакивает ошибка среды с описанием ListIndex out of bounds(4). (при попытке открыть проект) Ну и что, они не могут подобное подправить? Годами? |
| Автор: Vyacheslav 28.12.2006, 20:16 | ||||
Я даже обсудать не буду. Вы похоже и с тем и с другим знакомы в общих чертах. И при чем здесь STL и события и сообщения?
Quality Central - это спецификация наденных пользователями ошибок и их состояние на сегодняшний день. Репортить туда можно даже незарегистрированным пользователям. Вы, знаете, если бы я не работал реально на различных версиях С++Builder, я бы Вам поверил. У меня был проект состоящий из сотни отдельных более 50 отдельных модулей в проекной группе и ничего не падало. Так что, если Вам "больно надо", то мне тем более. |
| Автор: JackYF 28.12.2006, 20:35 | ||
... Не далее как сегодня, около 2 часов утра: картина маслом: BDS2006: 1) Создаю новый проект (VCL Forms Application) 2) Создается форма по умолчанию. Компилирую. Работает. 3) На форме создается TProgressBar, ему задаются Name, min, max... Компилирую. Запускается. 4) На форме создается две кнопки и Tedit. Запускаю - runtime error -> External Exception( и дальше куча белиберды... ). Потом еще 2 исключения и прога закрывается. 5) При перекомпиляции и/или перезапуске перечисленное в пункте 4 повторяется с завидным постоянством. Без комментариев. |
| Автор: Rockie 29.12.2006, 20:03 |
JackYF, то-то я удивился, что Думал речь о BCB 6. Слышал что BDS2006 еще сырая. Вообще баги могут зависеть не только от самого приложения. Тут нужно учитывать и ОСь, и железо, конфликты софта. К примеру у меня VS2005 падала при запуске вместе с одной из сборок миранды. Еще видел довольно интересный глюк - такая маленькая косая линия, как будто по монитору гвоздем царапнули. Любое программное обеспечение содержит ошибки, это нормально. Главное чтобы их количество и степень опасности не превышали какого-то установленного заранее разумного предела. JackYF, а прежде чем баг-репорты выкладывать, давайте я вам вопрос задам: - виндовс купленный? |
| Автор: skyboy 29.12.2006, 22:26 |
система документо-контроя/оборота отказывалась запускаться на компе, где установлен принтер. при том, что печатать программа не должна была на тот момент ничего - работы с принтером не было совершенно. |
| Автор: Rockie 29.12.2006, 22:33 | ||
|
| Автор: Xenon 30.12.2006, 03:04 |
| Rockie, у меня тот же баг был. И если на то пошло - лицензионная винда |
| Автор: Любитель 31.12.2006, 00:33 |
| К слову о багах борланда. В универе винда лицензионная, а также лицензионные Delphi 7 и C++ Builder 6. Тем не менее багов хватает, в том числе при написании кода - просто вываливается ошибка памяти в vcl.bpl (или что-то типа того). Или при открытии проекта (абсолютно валидного) - тоже какая-то ошибка и на экране никаких файлов, никаких формочек. Правда в последнем случае жмёшь выбор форм - появляются. Кстати, Vyacheslav, если вам не нравится eclipse количеством компилеров, то боюсь разочаровать в борланд студии он всего один и без надежд на светлое будущее. |
| Автор: nickless 31.12.2006, 03:34 |
| Раньше тоже пользовался BDS, и надо сказать, она значительно стабильнее работает после отключения ненужных фич, типа поддержки C# и дотнетовских промочек вообще. Для 2005-ой: http://delphi.about.com/od/delphifornet/a/delphi2005win32.htm |
| Автор: Vyacheslav 2.1.2007, 14:39 | ||
Это Вы к чему? Просто любопытно выглядит фраза "eclipse рулит", когда речь идет о степени соответствия компиляторов стандарту И в заключении, я все так подчеркну. 1. С++Builder 5, С++Builder 6( после установки всез патчей) вполне качественные для своего времени продукты 2. Компиляторы, поставлемые с ними обеспечивали высокий (опять же для того времени) уровень совместимости со стандартом. 3. VCL с точки зрения ООП достаточно добротно разработанная библиотека, которая наглядно продемонстрировала эффективность модели PME(property , method, event). И, кстати, как бы Microsoft не отпиралась, в их фреймворке и самом С# явно проглядывает лицо VCL , что в общем не удивительно. Создатель Delphi и С# - одно лицо, а именно Андерс Хелсберг Вот эти все выше перечисленных пункта, а также мой опыт позволяют мне заявить что на этих продуктах вполне реально создать довольно большие работоспособные комплексы масштаба предприятия, а любое нытье по поводу багов, не дающих нормально работать на них, я могу рассматривать только как некомпетентность тех, кто использует эти продукты. Причем, я могу предположить, что эти программисты могут быть весьма квалифицированными людьми. Я просто имел возможность наблюдать код написанный довольно сильным сишником, использующим впервые С++Builder и VCL. Это было нечто. Весь функционал был ровным слоем размазан по всему приложению, события были задействованы совершенно не к месту. Впоследствии переделка этого приложения заключалось в том, что приложении было переписано полностью, а код в результате сократился процетов на 30% Все выше сказанное не относится BDS 2006. Я не берусь утвеждать, что этот продукт также хорош. Впрочем не берусь утвеждать и обратное. Я не только с ним не работал, но к своему стыду даже никогда не видел |
| Автор: Любитель 2.1.2007, 18:34 |
| Vyacheslav, только не говорите, что gcc меньше соответствует стандарту чем борландовский компилер - это просто смешно. |
| Автор: skyboy 2.1.2007, 23:22 | ||
сопутсвующий вопрос - как можно сравнивать соответствие стандарту в категории "больше, чем/меньше, чем"? Положим, Borland Pascal абсолютно не соотвествует стандарту ANSI C. А Borland C++ 3.0 частично соответствует стандарту. Но как можно сравнивать? скажем, компилятор 1 фактически реализует стандарт ANSI С. Но реализация while не соотвествует стандарта(например, работает до соблюдения условия). И for отсуствует напрочь. А компилятор 2 следует стандарту, но имеет отклонения в некоторых редко используемых конструкциях. И что больше соотвествует стандарту? |
| Автор: Vyacheslav 3.1.2007, 00:33 | ||||||
Я и не говорю. Это Вы все пытаетесь сказать за меня. А наиболее полно соответствующим стандарту сечас считается не gcc, а http://www.comeaucomputing.com/. И небольшая шпилька
Разработан набор тестов, которые в зависимости от ситуации компилятор должен правильно или не должен компилировать. Раньше был, а может есть и сейчас (ссылку я утерял, к сожалению), где публиковались результаты тестов по компиляторам. |
| Автор: Rockie 3.1.2007, 01:15 | ||
http://www.citforum.ru/programming/C_comp/ |
| Автор: Daevaorn 3.1.2007, 01:18 |
Но это тест не на соответствие стандарту |
| Автор: Любитель 5.1.2007, 22:24 | ||||
Вы говорили насчёт проблем с нахождением компилера для Eclipse.
Ну с этим никто спорить не собирается. Факт есть факт. Просто gcc бесплатен, и в сё же компилер достаточно хороший. Насчёт экспорта - вы им хоть раз пользовались? Саттер не зря хотел убить экспорт (о чём он также пишет в своих книгах) - проблем в реализации много, а проку мало. Скорее наоборот - экспорт хранит неожиданности, интуитивно он воспринимается не таким, какой он есть не самом деле. Он не позволяет достичь того разделения между интерфейсом и реализацией, как дял обычных функций. По крайней мере в том виде, как его сейчас описывает стандарт. Поддержка эспорта - нулевой аргумент.
Глянем хотя бы на буст, написанный наиболее авторитетными плюсовыми программерами. В нём есть набор тестов, которые gcc проходит гораздо лучше борланда. |
| Автор: Vyacheslav 6.1.2007, 17:03 | ||
Я и говорю, пытаетесь сказать за меня то, что я не говорил Это Ваши слова?
В теме, где обсуждали совместимость компиляторов со стандартом, Вы заявили, что Eclipse рулит |
| Автор: Vyacheslav 6.1.2007, 17:22 | ||||
Вы все таки упорно не желаете вчитываться в то, что я пишу
Здесь ключевые фразы "для платформы Windows" и "Пока Borland нормально занимался поддержкой C++Builder". А если уж захотели сравнивать с gcc , то стоило бы тогда сравнить gcc 2.95 и компилятор от C++Builder 5. Они как раз по времени выхода очень близки к друг другу. И я очень сомневаюсь, что gcc на фоне Borland C++ 5.5 выглядел также блестяще |
| Автор: Sergio 7.1.2007, 15:25 |
| ИМХО Нужно выучить С++! Чтобы не терятся в книгах по МФЦ и АПИ. Имхо это учить не надо. |
| Автор: Любитель 8.1.2007, 01:24 | ||||
В том случае с моей стороны речь шла о полном боекомплекте от MS и Borland. Они поставляют IDE с компилером. И тут я сказал про эклипс. Тот факт, что с ним естественным считается gcc, по-моему, бесспорен. 1. см выше 2. всё же вы хотели бросить что-то якобы против gcc
Мдя, говорить про ANSI-совместимость для Windows как таковой... Да и вообще пока борланд нормально занимался поддержкой своего компилера (в моём понимании нормально) - стандарта собсно не было. Насчёт времени выхода - не знаю. Я говорю про те версии gcc и борланд-компилера, которые мне попадаются. ЗЫ А вообще спор заходит непонятно куда и непонятно зачем... |
| Автор: JackYF 9.1.2007, 16:14 |
| Меня долго не было... отвечу на один из прошлых постов Vyacheslavа. Нет. В этом случае как раз речь шла о BCB6 SP4. Издеваетесь? Только не говорите, что в пиратской версии windows злобные пираты специально подправили пару файликов... Это же возникало и на купленных Win98SE (BCB5)... Так что не в Винде здесь дело... |
| Автор: Любитель 9.1.2007, 16:37 |
| JackYF, выше я писал про сбоив универских лицензионках. |
| Автор: Daevaorn 9.1.2007, 17:48 | ||
но это и нельзя исключать |
| Автор: JackYF 9.1.2007, 18:32 |
Ну и? Я ответил на пост, который был обращен мне... я ж не спорю, а только подтверждаю... вопрос... зачем? |
| Автор: Alkanenko 9.1.2007, 20:43 |
| Товарищи! Я новичок, знаю только QBasic и смутно представляю основы С++. Купил книжку по Visual C++ 6 (Выпуск 2005, но написана в 1998) тобишь MFC. И тутже запоролся на 2 главе "Сообщения" "Откройте КлассВизард, щелкните ..." У в Visual Studio 2003 нет классвизарда! Может у меня глюк? Книжка толстая, правильная, но оказалась ненужная... Вот. Вопрос. Может новичкам и правда забить на Win32 и изучать .Net(Ведь виста не за горами)? |
| Автор: JackYF 9.1.2007, 20:53 |
| Мое мнение - на MFC точно стоит забить... Да ну и писать код через КлассВизарды... Лучше руками, все руками... и понимание придет быстрее. .NET - в любом случае не помешает... А вот изучать С++ - самый обычный С++ - тоже никогда не помешает... Только с другими книгами - по языку, а не по среде... Книги - в разделе Литература. |
| Автор: Alkanenko 9.1.2007, 21:18 |
| JackYF, спасибо. А как быть с API? |
| Автор: JackYF 9.1.2007, 23:24 |
| API? еще достаточно широко используется, учить можно... Но все-таки лучше учи чистый С++ - основа для многих языков сегодняшнего дня. После него довольно просто перейти на Java C# C++.NET |
| Автор: Любитель 14.1.2007, 13:37 | ||
Или остаться с самими плюсами. ИМХО лучший вариант
Не поверишь - я не спорил, просто хотел подчеркнуть этот факт. |
| Автор: Dronchik 11.5.2007, 12:29 |
| Приветствую всех. У меня VC++2006, в интернете нашёл учебники лишь 2000-2001года.Хотел бы задать вопрос: можно ли нормально выучится на них выполняя примеры в VC++2006??? извеняюс за |
| Автор: _hunter 11.5.2007, 13:05 |
| можно. только не понятно что у тебя за студия такая странная... |
| Автор: JackYF 11.5.2007, 15:30 |
| ага. Dronchik, по-моему, это был оффтопик. |
| Автор: Dronchik 12.5.2007, 09:29 | ||||
JackYF, Совершенно соглашшусь с вами. Как говорилось в какой то статье...
|
| Автор: it_medved 12.5.2007, 16:46 |
| Глупо не использовать шаблоны |
| Автор: Sartorius 12.5.2007, 16:48 | ||
VS 7.5 |
| Автор: Dronchik 12.5.2007, 19:23 | ||
не угадал. VS 6.5 |
| Автор: Любитель 12.5.2007, 19:48 |
1. "Ни когда" пишется слитно! 2. Без шаблонов (темплейтов) плюсы не плюсы |
| Автор: nerezus 12.5.2007, 22:03 | ||
Т.е. от C++ он взял обязательное использование низкоуровневых фишек типа указателей, а от дотнета IL и VM. |
| Автор: Любитель 13.5.2007, 10:01 |
| Ну я бы так не сказал. У C++/CLI просто своя "миссия" - создание дотнетовских оболочек для нэтивных либ. |
| Автор: dizzy1984 14.5.2007, 07:26 |
Мое мнение - нет, MFC нужно выучить. У этой библиотеки много недостатков, у меня, например, она вызывает чувство стойкого отвращения, но не стоит принижать ее достоинства и полезность. |
| Автор: nerezus 14.5.2007, 07:37 |
| dizzy1984, а чем оно лучше, чем Qt? http://qt.osdn.org.ua/mfc-vs-qt.html |
| Автор: Samotnik 14.5.2007, 10:59 |
| По мне так круче всего MFC, Java, И еще .NET планирую изучить, если нуна будет!!! |
| Автор: Любитель 14.5.2007, 13:08 |
Уж нужно - точно нет. Можно и то осторожно. Программирование на MFC может научить плохому Вопрос некорректен Мдя. А круче Windows Intel? Давайте сравнивать равные понятие? Ок? Java/C++/C# - очень надоевший и объективно безответный вопрос. А гуи-либ для плюсов, мягко говоря, очень много |
| Автор: JackYF 14.5.2007, 16:01 |
Так тебя что, заставляли MFC учить, получается? А то я эти две фразы связать не могу. Если у меня что-то вызывают чувство стойкого отвращения, то я три раза подумаю, прежде чем юзать такое, b перепробую все известные мне уже написанные (wxWidgets, qt, fox...) |
| Автор: dizzy1984 14.5.2007, 16:11 |
Ну не нужно, конечно, это я погорячился, но знание mfc может пригодиться. Существует множество программ, написанных с ее помощью и если речь идет об их поддержке без этого никуда. Кроме того а насколько низкоуровневой может быть работа с qt под платформу windows? Честно говоря, qt я не пробовал, но я знаю что не существуе ее бесплатной версии для windows. Mfc же абсолютно бесплатна и идет со средой разработки - visual studio express. Любитель, среди списка отличий вы перечислили переносимость, mfc разрабатывалась под платформу windows с чего бы ей быть переносимой? В некотором роде. Я сам себя заставил. Был наслышан об mfc как о средстве "профессиональной работы". Для тех, кому интересно покопаться во внутренностях системы, под которую он программирует. |
| Автор: Daevaorn 14.5.2007, 16:58 | ||
не правда.
а разве не возникают проблемы при #include <windows.h> ? |
| Автор: JackYF 14.5.2007, 17:04 | ||
Тогда уже Native API. В данном случае - Windows API. Вот это - внутренности. |
| Автор: nerezus 14.5.2007, 17:25 | ||||||
И причем ставить элементарно и сама окружение настраивает.
|
| Автор: popovda 14.5.2007, 18:06 |
| Считаю так: 0. Программист - это не тот, кто книжки зубрит, а тот, кто поставленную задачу переводит в четкий и однозначный алгоритм. Так что это главное. 1. ЗНАТЬ КАК БОЕВОЙ УСТАВ - ANSI С - в особенности работу с указателями - без этого в C++ делать нечего 2. Изучить C++ (сначала Шилдт, затем Страуструп и ISO/ANSI) и привыкнуть писать строго следуя СТАНДАРТУ. 3. STL - знать основные шаблоны, понимать как работает. Остальное - справочник. 4. Для той ОС, в которой писать будешь - основы API. Windows - Ч. Петзольд - у меня есть в rtf из издательства, или если *NIX - Теренс Чан - есть в tiff-ах 5. Умея работать со справочником, сможешь писать и на WinAPI, и в MFC с VCL. |
| Автор: JackYF 14.5.2007, 19:21 |
Глупо исправлять орфографию в этом слове |
| Автор: Xenon 14.5.2007, 20:00 |
| JackYF, Смотря какого рода П***ежь - если женского, то 3-е склонение, женский род, значит мягкий знак на конце (типа дочь), а вот если п***ежь мужчины, то без мягкого знака, ибо 2-ое слонение |
| Автор: nickless 14.5.2007, 20:27 |
| |
| Автор: nerezus 14.5.2007, 21:03 | ||
прастити миня йа сафсем руский зо был =\ Будем исправляться |
| Автор: dizzy1984 15.5.2007, 05:27 | ||
Слишком хардкорные внутренности, все-таки мне нужно и результат изредка показывать. Никакой провокации, вполне официальная информация с ихнего сайта. Под бесплатной версией вы подразумеваете порт linux'ово пакета qt с использованием mingw? Он только для написания бесплатных программ (что в принципе не так уж плохо). Платная версия интегрируется в vs. |
| Автор: nerezus 15.5.2007, 07:51 | ||||
Т.е. сначала ты отрицаешь ее существование, а потом говоришь, что она есть |
| Автор: dizzy1984 15.5.2007, 10:40 | ||
Рад что тебе понравилась. Я и сейчас отрицаю существование коммерческой бесплатной версии под windows. Согласись, не совсем приятно писать код, который не может впоследствии быть использован для продажи. |
| Автор: Daevaorn 15.5.2007, 14:23 | ||
Ну на самом деле лицензия GPL не запрещает продавать продукты, она лишь обязует предостовлять исходный код. Поэтому всё-таки ты сказал не правду |
| Автор: nerezus 15.5.2007, 16:41 |
| dizzy1984, пожалуйста дай ссылку на халявный MFC. Ну или хотябы на халявный MFC только для некомм. использования. А Qt бесплатный. А если ты собираешься получать деньги за его использование, то почему бы и не заплатить? Не такие уж и большие суммы он стоит. |
| Автор: JackYF 15.5.2007, 17:10 | ||
Не согласен. На работе я работаю. Пишу код в команде и получаю за это деньги. Дома я пишу код для себя и других. И пусть люди пользуются на здоровье, если найдут мой код полезным. |
| Автор: dizzy1984 16.5.2007, 06:18 |
| Daevaorn, nerezus, убедили, убедили. бегу ставить qt |
| Автор: Bart_Simpson 16.5.2007, 16:18 |
| Я бы еще выучил сразу Системное программирование API мне стало больше понятно в С када начали учить Системное программирование. P.S. Каждый выбирает свой будь для себя сам! |