| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Как выучить С++ на столько, чтобы его полюбить. |
| Автор: Tobuk 22.11.2009, 22:59 |
| Знаю С++ на уровне классов, шаблонов перегрузок и прочего. Знаю наследование const ссылки и прочее, но пользоваться ими не умею. (ни как не найду где их использовать) Не люблю С++. Люблю Си. Так бы и писал на Си, но все вокруг пишут на С++. Хвалят его. Любят его. Это не дает мне покоя. Как же выучить С++ на столько, чтобы полюбить его? Как найти применение всяким mutable и наследованию? Как делать такие же вещи, как Александреску и чувствовать себя крутым программистом С++? |
| Автор: Void 22.11.2009, 23:55 | ||
Судя по всему, это нормально.
|
| Автор: Abyx 22.11.2009, 23:56 |
если ничего не писать - не будешь знать где применить. больше кодить надо, тогда будет понятно что и зачем придумано |
| Автор: niXman 22.11.2009, 23:58 |
| А ты в своих программах попробуй использовать STL. Вот тогда поймешь что такое С++. И увидишь на сколько упрощается код программы. Наследование - оно везде наследование. ничего нового в нем нет. mutable - такое же г* как и const_cast<>(). Александреску - нерд. |
| Автор: nerezus 23.11.2009, 04:24 |
| Tobuk, попробуй написать программу >500кб исходников ) Поймешь, что такое ООП и почему он делает мир проще ;) |
| Автор: Леопольд 23.11.2009, 08:59 |
| Посмотри в сторону библиотек для С++. Boost, Ogre и т.д. на любой вкус и цвет. Напиши что нибудь с их использованием. Например Boost Asio... |
| Автор: kemiisto 23.11.2009, 15:43 | ||
Это страшный сон, товарищи! ![]() |
| Автор: Abyx 23.11.2009, 18:45 | ||
| Lazin, проще смотреть на сигнатуру Foo или писать
чем вводить ограничение на использование ссылок |
| Автор: niXman 23.11.2009, 19:06 |
| Abyx, Да нет, не проще. Сам пользуюсь таким же принципом. Если в функцию нужно передать объект(при условии что сам объект не модифицируется), то по константной ссылке. А если предполагается изменение объекта вне самой функции, то по указателю. Добавлено через 2 минуты и 39 секунд kemiisto, Вам http://forum.vingrad.ru/index.php?showtopic=280599&view=findpost&p=2024764 |
| Автор: Abyx 23.11.2009, 19:18 | ||||
| указатель != ссылка, такая замена только для повышения читабельности кода, в общем случае неравноценна. конечно, если в коде ссылки можно безболезненно заменить на указатели, это другое дело, но это действительно очень узкое подмножество С++ Добавлено через 9 минут и 57 секунд и да, редко бывают правила одинаково хорошо подходящие ко всем ситуациям. вот например сегодня читал документацию spirit2, там сделали
имхо это гораздо лучшее решение, чем было в 1.8
|
| Автор: powerfox 24.11.2009, 00:29 | ||
В чём разница, кроме неявного приведения типов в случае константной ссылки? Стиль, который использует Lazin, рекомендуют, наверное, в любой книге по ++. Во всяком случае Страуструп точно. |
| Автор: PRF 24.11.2009, 03:07 |
| я считаю, что этот вопрос "выучить чтобы полюбить" это бред... вы можете полюбить жигули когда узнали все о ней полностью?)) ну грубое сравнение , но все же)) таких примеров можно много написать) но я не могу)) хз) я просто хотел сказать, что чтобы полюбить, точно не поможет знание о нем все, вот вы любите СИ чистый, так же наверно как я люблю С++ )) и не потому что он предоставляет там ух как много всего) но я просто получаю удовольствие если пишу на нем, + функционал)) |
| Автор: mes 24.11.2009, 10:11 | ||
1. ссылка легко оптимизируется компилятором 2. не надо проверять на нуль (или какие то дополнительные (условные) гарантии заменяющие проверку) 3. явно видно что функция не может принимать ноль как аргумент 2 и 3 й пункт, несмотря на кажущуюся близость, не одинаковы. 2й - взгляд изнутри (разроботчика), а 3й снаружи (пользователя). |
| Автор: Lazin 24.11.2009, 10:44 | ||
не проще, вызов в одном месте, сигнатура - в другом ну и как константу передать в ф-ю, принимающую не константную ссылку? указатель - то-же
с этим согласен, но у нас ведь еще есть константные ссылки, которые можно использовать в большинстве таких случаев к тому-же, найти, где и когда был разыменован нулевой указатель - очень легко, а найти баги, связаные с тем, что программист не ожидал того, что состояние объекта будет изменено - намного сложнее, поэтому я пожалуй останусь при своем мнении |
| Автор: Luyan 24.11.2009, 21:04 | ||
думаю ты на си писал то, что тебе было интересно. имхо смотри в сторону того, что тебе нравиться, просто так себя ломать и насиловать изучая си++ не стоит.
"крутым" - зачем? каждый берёт от си++ своё. Посмотри вокруг себя, попробуй описать какой-нибудь процесс юзая си++, короче - попробуй программировать для души. И смотри в сторону UML. |
| Автор: Lazin 24.11.2009, 22:24 |
| вот в этом и состоит главная проблема многих программистов |