книга для новичка.
Хотелось бы такую чтобы сразу обучала на Visual Studio C++.
Купил одну книгу, но разоочаровался вот она http://www.bolero.ru/books/9785977502672.html.
Для меня лучше если в начале книги берется прмер одной маленькой программы и она постепенно разрастается вместе с познаниями новичка читающего книгу. В купленной мной к сожалению иной подход к обучению.
Может я не прав... хотел бы узнать мнение Гуру...
Если только начинаете, тогда начните просто с C++ вне зависимости от среды. Особенно подучите ООП. Потом будет намного легче изучить Visual С++.
Если только начинаете, тогда начните просто с C++ вне зависимости от среды. Особенно подучите ООП. Потом будет намного легче изучить Visual С++.
мое ИМХО, что лучше ООП учить на примерах реальных ООП библиотек - того же МФЦ (только не билдер со своим ВЦЛ и программированием мышкой!!!), заодно и АПИ виндовое выучится. Просто книжные примеры настолько бывают далеки от реальности, что без нольпять никак не въехать.
Ну ты нашел чего посоветовать. Этот кошмарный ужас MFC? Архитектура VCL гораздо красивее и стройней.
Вон, у той же Windows Forms ноги отнюдь не из MFC растут, а именно из VCL.
Вон, у той же Windows Forms ноги отнюдь не из MFC растут, а именно из VCL.
Тяжело в учении - легко в бою.
Супротив самого ВЦЛ особо ничего не имею (есть нюансы, но для новичка до них далеко), но начинать с него учить ООП моветон.
PS: к стати, многие ругают МФЦ, но конкретных доводов ее корявости не приводят. Если дело только в отсутствии свойств, дык тут не в либе дело а в плюсах.
ООП, ООП... А насколько нужно оно? Думаю, вначале можно и без него обойтись. Изучить некоторые основы в C++: классы, виртуальные функции, абстрактные классы, шаблоны, STL. Вполне хватит, чтобы программировать на C++, использовать чужие компоненты, ничего не понимая в ООП.
Ну тут нюанс. Если ты тупо на ура начинаешь делать фигню, то тут неважно, какую либу ты используешь. Если ты начинаешь обучение с чтения книг (Кэнту тот же), то нормально можешь изучить ООП и в VCL. Но это имхо. Любит народ на дельфю поругаться, а пишет народ на дельфи и ниче - нормально. Так же как на дельфях есть говнопроги, так и на любом языке. Тоже имхо. Но собственно тема открыта в разделе MS, так что VCL по любому не проканает.
Может я заблуждаюсь, но думаю, что ООП, это когда вначале ОО анализ, потом ОО проектирование, потом только программирование.
Но вполне можно первые два пункта пропустить. Тогда будет обычное процедурное программирование. Будем использовать структуры с функциями (классы). Будем применять некий аналог макросов - шаблоны.
Как различить что мы используем: ООП или не ООП? Наверно по тому, сколько усилий затрачивается на изменение кода при изменении ТЗ.
Но вполне можно первые два пункта пропустить. Тогда будет обычное процедурное программирование. Будем использовать структуры с функциями (классы). Будем применять некий аналог макросов - шаблоны.
Как различить что мы используем: ООП или не ООП? Наверно по тому, сколько усилий затрачивается на изменение кода при изменении ТЗ.
int _tmain(int argc, _TCHAR* argv[])
{
std::cout<<"Hello Word!";
return 0;
}
Простота проектирования и программирования приложений на дельфях и им подобных порождает ламеризм, (точно так же как механик, который не представляет себе работу двигателя, начнет собирать его из запчастей ) посему лучше начинать с более сложного в плане использования. (недавний разговор про изучение асма вспомнился)
int _tmain(int argc, _TCHAR* argv[])
{
std::cout<<"Hello Word!";
return 0;
}
это разве не ООП? наследование , полиформизм и инкапсуляция в stl присутствует :)
Не вижу ООП. Чистое процедурное программирование.
И, на сколько я знаю, в STL очень мало наследования, полиморфизма. Например, контейнеры не являются наследниками одного общего базового класса, как это может показаться. Просто у них одноименные методы и всё. В STL основная мощь в применении шаблонов, но это не показатель ООП.
Ну в потоках вроде и шаблоны не используются. Перегрузка операторов тут. Хм... Получается, в STL почти никакого ООП и нет. Снаружи не видно. Но это предположение только. Надо подумать... :)
Им бы только поругаться на что-нибудь. Нормальный язык.
Я бы и сам на нем писал, но лень помнить 2 синтаксиса, да и бесплатных нормальных сред разработки нет (Лазарус мне не понравился). В этом смысле лучше всего дело с Java, для которой есть хорошая бесплатная среда с RAD - NetBeans IDE. Странно, что джавистов сравнительно мало (на форуме их совсем мало).
Зоркус за десятерых. :) И Джэйл тоже. =))
лет 6 или 7 назад я писал на Java :rolleyes: с тех пор начисто все забыл :D
а я в школе Basic изучал, причем даже не вижуал. Тоже все забыл. ;)
Супротив самого ВЦЛ особо ничего не имею (есть нюансы, но для новичка до них далеко), но начинать с него учить ООП моветон.
PS: к стати, многие ругают МФЦ, но конкретных доводов ее корявости не приводят. Если дело только в отсутствии свойств, дык тут не в либе дело а в плюсах.
Ты, наверное, шутишь. Конкретные доводы корявости МФЦ - да их пруд пруди.
Пример из собственного опыта:
Писал простенький интерфейсик, и в нем использовал один из мфцшных тривью. Все бы хорошо, но приложение вылетало при наведении(!!) мышки на горизонтальный скроллбар.
А документация по мфц - ты ее читал? В документации одно, в примере второе, и ни первое ни второе не работает.
Пример из собственного опыта:
Писал простенький интерфейсик, и в нем использовал один из мфцшных тривью. Все бы хорошо, но приложение вылетало при наведении(!!) мышки на горизонтальный скроллбар.
А документация по мфц - ты ее читал? В документации одно, в примере второе, и ни первое ни второе не работает.
нда... в том то вся и прелесть, пока напильничком не доработаешь, не поймешь как оно работает.
ЗЫ: весь день мучился с CRecordset::GetFieldValue, чтоб 2 раза подряд можно было получать одно и тоже поле, пришлось применять ООП - наследование и полиформизм, хотя в этой ситуации я склонен пенять на свои руки а не на мфц.
Пример из собственного опыта:
Писал простенький интерфейсик, и в нем использовал один из мфцшных тривью. Все бы хорошо, но приложение вылетало при наведении(!!) мышки на горизонтальный скроллбар.
А документация по мфц - ты ее читал? В документации одно, в примере второе, и ни первое ни второе не работает.
Продолжительное время довольно продуктивно использовал MFC (в том числе и для построения интерфейсов). Таких явных багов не замечал никогда. Были как-то проблемы с MFC-шными сокетами в VS2005, но склонен думать, что тогда проблема была скорее в моей криворукости :)
Вцелом MFC оставляет нормальное впечатление, по крайней мере у меня.
А по поводу VCL согласен с Washington. При грамотном подходе новичкам можно вполне начинать и с него. Другой вопрос, что очень мало книг используют этот грамотный подход, а все больше "расположите на форме кнопку, щелкните по ней два раза и т.д.", не объясняя, что собственно происходит в это время за сценой.
VCL замечательно подходит для самостоятельного исследования - код достаточно прост, читаем и вполне обозрим в одиночку. Очень грамотно спроектированная ОО-библиотека компонентов. Другое дело что уже порядком устарела...