Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: C++ с нуля, книги програмы  (Прочитано 7069 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн mastepaner

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: C++ с нуля, книги програмы
« Ответ #15 : 09 Августа 2012, 18:42:35 »
Я не говорю, что он умирает. Я говорю, что с++11 ощущается как новый язык. Я бы порекомендовал время в ожидании новых учебников по с++11 провести за изучением Python-а :) Просто откройте http://rosettacode.org/wiki/Loops/Foreach и перейдите к С++ и сравните цикл в старых плюсах и в новых. И учить "спокойно" и "не замарачиваясь" не советую. Надо бы хотя бы с http://en.cppreference.com "замарочиться". Ну какой смысл новичку читать два тома "Скотт Мейерс. Эффективное использование C++." про 50 и ещё 35 рецептов, если в этот момент Скотт Мейерс сидит и пишет их обновлённое издания для С++11, где до половины всех рецептов могут стать совсем другими?

Я уже не говорю про nullptr. Не надо приучать новичков к 0 и NULL, погибель несущим - только nullptr! всегда, ныне и присно, и во веки веков.
« Последнее редактирование: 09 Августа 2012, 19:11:02 от mastepaner »

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: C++ с нуля, книги програмы
« Ответ #16 : 10 Августа 2012, 05:34:19 »
Предыдущий стандарт знать придётся. Хотябы чтобы понимать что здесь написано.
Особых отличий не заметил. Ну появилось две плюшки помогающие съэкономить 20-30 символов в исходнике. Суть от этого не поменяллась. Именно эти плюшки освоить легко. Хватит приведенного тобой примера и вуаля можно дальше читать старую книжку. С++11 не отменяет старого синтаксиса как было с С++03. где отказались например от .h в заголовочниках и заставили явно указывать пространство имён. до сих пор некрофилыновички приходят на форум и спрашивают почему не компилируется
#include <iostream.h>

int main()
{
   cout << "hello" << endl;
}
С++98 закопать, да.
С этим в новом стандерте всё ОК. на своих ошибках научились больше ничего не ломали. Вроде бы какие-то извраты объявили deprecated но это всё. получишь варнинг от компилятора в худшем случае.
Современные книжки и статьи не брезгуют boost'ом и уже давно рассказали почти про все фишки "будущего" стандарта. Оно уже всё было в boost. Так что...

Оффлайн Gekko

  • Участник
  • *
  • Сообщений: 222
    • Просмотр профиля
Re: C++ с нуля, книги програмы
« Ответ #17 : 10 Августа 2012, 21:50:33 »
Друзья, сейчас очень неудачный момент учить С++ именно с нуля - недавно вышел стандарт с++11 и весь мир сидит и ждёт "учебников с++11". Там ведь и нити будут другие, и RAII будет другой, и std::array vs std::list vs std::vector даст совсем другой ответ и многое другое. А учебники, которыми набиты полки магазинов и сайты интернетов - они все, к сожалению, безнадёжно и безповоротно УСТАРЕЛИ. Мне очень жаль.

Это не правда. Новые прибамбасы из C++11 использовать вовсе и не обязательно. С++ вообще так устроен, что можно использовать вообще 50% его функционала и этого будет достаточно для создания хороших программ. Бьерн Страуструп в Специальном издании "Язык программирования С++" прямо об этом пишет: "Для написания хороших программ не нужно знать о С++ все" (стр.80, Язык программирования С++. Специальное издание. Издательство Невский Диалект. 2001 год), таким образом, когда говорят, что С++ сложен для изучения, то изучающие сами виноваты в этом. Не нужно использовать шаблоны классов и прочие извращения в стиле опуса Андрея Александреску. Достаточно изучить классические разделы С++ : об объектах и классах, производных классах, о множественном наследовании и частично о стандартной библиотеке STL. Этого будет достаточно для создания хороших программ.
Xubuntu 12.04 LTS с Xfce 4.10

Оффлайн Zeka13

  • Старожил
  • *
  • Сообщений: 1177
  • 18.10 Gnome x64 GTX 970
    • Просмотр профиля
Re: C++ с нуля, книги програмы
« Ответ #18 : 12 Августа 2012, 03:43:21 »
"Программирование на С" Подбельский -> "Самоучитель С++" Шилдт -> Qt Шлее
Если Wine - это костыль , то  Punto Switcher - это протез , а Daemon Tools инвалидное кресло.

Оффлайн mastepaner

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: C++ с нуля, книги програмы
« Ответ #19 : 13 Августа 2012, 14:46:21 »
Новые прибамбасы из C++11 использовать вовсе и не обязательно.
auto не использовать?
for (auto x : v) не использовать?
universal initialization не использовать?
std::array не использовать?
enum class не использовать?
Не использовать move semantics?
Regular expressions library и std::unique_ptr не использовать и тянуть по зависимостям boost?

А зачем тогда вообще учить C++?

Люди, которые по устаревшим учебникам научатся устаревшему С++, очень скоро обнаружат, что теперь им надо менять подходы, привычки, приёмы, и учить с++ второй раз, на этот раз уже новый с++11

P.S. http://sergeyteplyakov.blogspot.com/2012/05/c-11-faq.html
« Последнее редактирование: 13 Августа 2012, 14:58:53 от mastepaner »

Оффлайн Gekko

  • Участник
  • *
  • Сообщений: 222
    • Просмотр профиля
Re: C++ с нуля, книги програмы
« Ответ #20 : 13 Августа 2012, 15:24:16 »
Новые прибамбасы из C++11 использовать вовсе и не обязательно.
auto не использовать?
for (auto x : v) не использовать?
universal initialization не использовать?
std::array не использовать?
enum class не использовать?
Не использовать move semantics?
Regular expressions library и std::unique_ptr не использовать и тянуть по зависимостям boost?

А зачем тогда вообще учить C++?

Люди, которые по устаревшим учебникам научатся устаревшему С++, очень скоро обнаружат, что теперь им надо менять подходы, привычки, приёмы, и учить с++ второй раз, на этот раз уже новый с++11

P.S. http://sergeyteplyakov.blogspot.com/2012/05/c-11-faq.html

Именно не использовать и все. В Qt этих прибамбасов нет и от этого Qt не является плохой библиотекой. В GTKmm их нет и от этого GTKmm не является плохой библиотекой. В wxWidgets тоже нет никакого C++11 и от этого, белый свет так же в пропасть не провалился.

95% работы среднего программиста это работа с GUI. Для ГУЯ все эти С++11 как к телеге 5-е колесо. Если разобраться, то GUI библиотеки фактически даже STL до сих пор не используют, а если какие и используют, то частично.

Поэтому, начинающим программистам как я уже сказал выше нужно начинать изучать С++ не с новых стандартов а с фундаментальных основ объектно-ориентированного программирования, а именно: объекты - классы, производные классы, множественное наследование, полиморфизм, STL. И только после этого, если возникнет необходимость (что очень маловероятно) в новых наворотах С++ можно почитать об новшествах С++11.

И самое главное, ничего переучивать заново не надо, не надо менять подходы, привычки, приёмы, и учить с++ второй раз.

С++11 это всего лишь еще одно расширение С++, точно так же, как когда-то было еще одним расширением С++ введение в стандарт STL.
Xubuntu 12.04 LTS с Xfce 4.10

Оффлайн mastepaner

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: C++ с нуля, книги програмы
« Ответ #21 : 13 Августа 2012, 16:01:50 »
Я с вами совершенно не согласен.
1) 95% работы среднего GUI-программиста это работа с GUI. Но есть ещё и не GUI-программисты. Люди, которые пишут сервисы, утилиты, библиотеки. Но это никак не влияет на с++11 - он необходим и тем и другим. Зацените http://woboq.com/blog/cpp11-in-qt5.html и http://labs.qt.nokia.com/2011/05/26/cpp0x-in-qt/
2) Я ничего не говорил о "плохих"/"хороших" библиотеках - это зависит не от языка. Я говорил о новичках, которые будут учиться старому языку. Например, в http://channel9.msdn.com/Events/GoingNative/GoingNative-2012 автор языка с++ приводит в пример УЖАСНЫЙ кусок кода, и сетует на то, что люди тупо копируют его из года в год, потому что так их научили те, кто до них копировал этот кусок из года в год. Сейчас не 1986 год, сейчас на плюсах надо совсем не так. dammit!
3) Что может быть фундаментальнее, чем universal initialization? Посмотрите на вот этот код - он взят из http://www.informit.com/articles/article.aspx?p=1852519
//C++11 brace-init
int a{0};
string s{"hello"};
string s2{s}; //copy construction
vector <string> vs{"alpha", "beta", "gamma"};
map<string, string> stars
 { {"Superman", "+1 (212) 545-7890"},
  {"Batman", "+1 (212) 545-0987"}};
double *pd= new double [3] {0.5, 1.2, 12.99};
Вот так надо! И это только universal initialization - это только один пункт из моего предыдущего ответа.
Надо! Надо менять подходы, привычки, приёмы! Это уже НОВЫЙ С++, и он ЛУЧШЕ чем тот С++, что был раньше!
enum class лучше чем enum - http://stackoverflow.com/questions/6936030/do-we-really-need-enum-class-in-c11
std::array лучше, чем std::vector - послушайте выступления автора языка на GoingNative-2012 (ссылка выше)

Если вы лично не хотите этого использовать - ваше право. Но новички-то! "C++ с нуля" называется тема! Если человек НЕ ЗНАЕТ С++ то пусть он учит СОВРЕМЕННЫЙ С++ а не мучается как мучались люди в 1986 году. Language features exist to make programmers lives easier. Just because something can be done manually doesn't mean that it should. Не говоря уже о том, что новый с++11 просто КРАСИВЕЕ.
« Последнее редактирование: 13 Августа 2012, 18:01:05 от mastepaner »

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: C++ с нуля, книги програмы
« Ответ #22 : 14 Августа 2012, 06:46:35 »
mastepaner,
Уговорил, возьми с полки пирожок =)

Оффлайн U_Ice

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: C++ с нуля, книги програмы
« Ответ #23 : 13 Июля 2013, 22:44:40 »
Добрый день. Я как ТС решил попробовать освоить С++. Почитал про С++11 и теперь не знаю, что делать... Есть по С++11 какие-либо самоучители, уроки, курсы и т.д.? Хочется просто, если уж и браться за что-то, то за послднее... Заранее спасибо.

Оффлайн Alex7777

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: C++ с нуля, книги програмы
« Ответ #24 : 14 Июля 2013, 02:11:42 »
U_Ice,
Есть книга "C++ Primer Plus, 6th Edition (Developer's Library)", которая переведена на русский язык издательством Вильямс в начале 2012 г. Кстати, по-русски она называется "Прата С. - Язык программирования С++. Лекции и упражнения 6 издание". Она (6 издание) написана с учетом выхода стандарта c++11

Оффлайн _XDD_

  • Участник
  • *
  • Сообщений: 108
    • Просмотр профиля
Re: C++ с нуля, книги програмы
« Ответ #25 : 14 Июля 2013, 06:14:59 »
Если разобраться, то GUI библиотеки фактически даже STL до сих пор не используют, а если какие и используют, то частично.

понял всю красоту STL именно во время изучения Qt. Там на STL оооочень дофига всего.
а про остальное согласен.

Пользователь решил продолжить мысль 14 Июля 2013, 06:19:16:
mastepaner,
ну, прочитал я ваш пост о universal initialization, сразу понятно что к чему, хоть из C++11 только strtol вроде читал.
в чем проблемы то? Стало просто легче, координальных изменений не заметно чтобы "Это незащищенная вещь из C++03, теперь только из C++11 используйте, а в C++14 мы опять это переработаем". Так может тогда пусть автор ждет C++14?

стало чуть легче просто. Но не значит это переработка старого ...
просто доучить еще часть
« Последнее редактирование: 14 Июля 2013, 16:23:01 от _XDD_ »

Оффлайн quiet_readonly

  • Участник
  • *
  • Сообщений: 133
    • Просмотр профиля
Re: C++ с нуля, книги програмы
« Ответ #26 : 14 Июля 2013, 13:59:54 »
Добрый день. Я как ТС решил попробовать освоить С++. Почитал про С++11 и теперь не знаю, что делать... Есть по С++11 какие-либо самоучители, уроки, курсы и т.д.? Хочется просто, если уж и браться за что-то, то за послднее... Заранее спасибо.
C++ традиционно содержал что-то для программиста и что-то на будущее, C++ 2011 в этом плане не отличается, множество вещей оттуда программисту просто незачем использовать, это лишь усложнит код. Так что можно изучать прежний стандарт и просто оценивать применимость тех или иных возможностей C++11 по статье из википедии. Например, встретился умный указатель boost::shared_ptr — заменяем его на std::shared_ptr из заголовка <memory>.

 

Страница сгенерирована за 0.034 секунд. Запросов: 22.