|
|
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. BS говорит, важно понять концепцию, детали не должны быть на первом месте. Думаю что он прав. Не уверен что полностью понял концепцию, для того чтобы её понять мне потребуется поучаствовать в каком-нибудь серьёзном проекте, нужен опыт, нужен не один год, и я это прекрасно понимаю. Но что-то мне стало понятно. Потому я стал тщательнее разбираться в деталях. Использую книги BS, немного Лафоре, и конечно стандарт С++. Я пробовал читать книгу Павловской, которую мне советовали, но BS мне нравится больше. Возникли некоторые вопросы, подскажите пожалуйста 1. Согласно стандарту классом в С++ будут являться объекты объявленные с ключевыми словами class, struct, union. При этом, согласно стандарту члены классы объявленные в классе с характеристикой типа class по умолчанию имеют access contol типа private, в случае иной характеристики(struct или union) объекты класса объявленные по умолчанию имеют access contol типа public. 1.1 Почему BS не оставил в языке только один class-key ? Думаю что это связано с совместимостью программ на С и С++, но не уверен в это. Потому что в таком случае объекты struct и union можно было оставить как и ранее, и не говорить что это классы, хотя с другой стороны, struct и union по сути типы определяемые пользователем, потому всё логично. Но я правильности в своих рассуждений я не могу быть уверен. 1.2 Несмотря на то, что стандартом строго определен access contol членов класса по умолчанию существует возможность указать их в самостоятельно. Как вы поступаете в своих программах на С++ ? 1.3 Существуют ли скрытые проблемы связанные со структурами и объединениями связанные с новой трактовкой данных элементов в С++ при переносе программ из С на С++ ? 1.4 Часто ли вы определяете объекты union в своих программах? 2. Что такое пространство имён, и зачем оно нужно я понимаю. И мне нравится этот механизм. Мне кажется что каждый объект программы (каждый пользовательский класс) должен быть описан с использованием данного механизма. Это точно не будет ошибкой, и всегда может потребоваться при расширении программы. Используете ли вы данный механизм в своих программах ? Как часто ? 3. BS говорит -объявление класса, далее о том, что исторически сложилась фраза определение класса, а позже говорит представление класса. Как говорите вы ? 4. Существует ли стандарт в котором дано определение того, что такое ООП ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 03:58 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryBS говорит, важно понять концепцию, детали не должны быть на первом месте. Думаю что он прав. Не уверен что полностью понял концепцию, для того чтобы её понять мне потребуется поучаствовать в каком-нибудь серьёзном проекте, нужен опыт, нужен не один год,И нужно много языков. SashaMercury1.1 Почему BS не оставил в языке только один class-key ? Думаю что это связано с совместимостью программ на С и С++, но не уверен в это. Потому что в таком случае объекты struct и union можно было оставить как и ранее, и не говорить что это классы, хотя с другой стороны, struct и union по сути типы определяемые пользователем, потому всё логично. Но я правильности в своих рассуждений я не могу быть уверен.Для упрощения реализации. SashaMercury1.2 Несмотря на то, что стандартом строго определен access contol членов класса по умолчанию существует возможность указать их в самостоятельно. Как вы поступаете в своих программах на С++ ?По нужде и желанию. SashaMercury1.3 Существуют ли скрытые проблемы связанные со структурами и объединениями связанные с новой трактовкой данных элементов в С++ при переносе программ из С на С++ ? Из Си в С++? Нет перенос структур вполне прозрачен. Но вообще-то, программы из Си в С++ никто не переносит. Не, бывают конечно идиоты которым делать нечего, и студенты которые сдают лабы лишь бы тройку получить - те да, те переносят. Вернее пытаются... SashaMercury1.4 Часто ли вы определяете объекты union в своих программах?При нужде бывает. Но нужда возникает очень редко. Но бывает. SashaMercury2. Что такое пространство имён, и зачем оно нужно я понимаю. И мне нравится этот механизм. Мне кажется что каждый объект программы (каждый пользовательский класс) должен быть описан с использованием данного механизма. Это точно не будет ошибкой, и всегда может потребоваться при расширении программы. Используете ли вы данный механизм в своих программах ? Как часто ?Никогда. Это абсолютно бессмысленный механизм. Сделан под давлением моды, но реальной пользы он не несет. В пространстве имен был-бы смысл, если бы в одном проекте использовались несколько "пространств", но в С++ проще и традиционней использовать библиотеки. Каждая библиотека это уже "пространство имен". В итоге единственным фреймворком где это самое пространство имен используется является один единственный std. SashaMercury3. BS говорит -объявление класса, далее о том, что исторически сложилась фраза определение класса, а позже говорит представление класса. Как говорите вы ? Как надо, так и говорим. Определение и представление это не синонимы, это две разные вещи. SashaMercury4. Существует ли стандарт в котором дано определение того, что такое ООП ?Нет. Но существуют учебники. Читай про Simula & SmallTalk. Первая реализация ООП в Simula, но SmallTalk вывел ООП в люди. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 05:50 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
White Owl Никогда. Это абсолютно бессмысленный механизм. Сделан под давлением моды, но реальной пользы он не несет. В пространстве имен был-бы смысл, если бы в одном проекте использовались несколько "пространств", но в С++ проще и традиционней использовать библиотеки. Каждая библиотека это уже "пространство имен". В итоге единственным фреймворком где это самое пространство имен используется является один единственный std. Но как в таком случае решать проблемы namespace pollution (нарушение пространства имён) ? В Си стандартом фактически предлагается использование префиксов, в С++ предложили такой выход. White Owl По нужде и желанию. Т.е. вы можете писать по-разному ? От чего это например зависит ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 07:34 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
SashaMercury1.1 Почему BS не оставил в языке только один class-key ? Думаю что это связано с совместимостью программ на С и С++, но не уверен в это. Потому что в таком случае объекты struct и union можно было оставить как и ранее, и не говорить что это классы, хотя с другой стороны, struct и union по сути типы определяемые пользователем, потому всё логично. Но я правильности в своих рассуждений я не могу быть уверен. SashaMercury, Вы можете задать этот вопрос самому BS - он отвечает, проверено ) Собственно, встречный вопрос: а зачем ему было их убирать? Напомню, в "самых истоках" C++ назывался "C with classes". Это было сделано, чтобы "заполучить" большую аудиторию программистов на С, а также большой объем кода (библиотек и пр.), который бы облегчал разработку на новом языке. А для этого нужно было обеспечить на сколько возможно полную совместимость с С. Что делать, если новые возможности сломают обратную совместимость? Это же потеря всех преимуществ. Классы. Изменение ограничения доступа по умолчанию (c public на private) - это ломающее обратную совместимость изменение. Но оно отражает переход от парадигмы "пользователь по умолчанию видит всё" к парадигме "пользователь видит только то, что мы ему явно разрешили (специфицировав публичный интерфейс)". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 09:11 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
White OwlSashaMercury4. Существует ли стандарт в котором дано определение того, что такое ООП ?Нет. Но существуют учебники. Читай про Simula & SmallTalk. Первая реализация ООП в Simula, но SmallTalk вывел ООП в люди. Не существует научного доказательства которое делает ООП более правильной методологией разработки. Нет также сравнительных практик или оценок качества ПО которые говорят о том что одно и то-же приложение написанное в ООП стиле лучше чем не-ООП. Скорее наоборот. Миру являет бесконечное разнообразие опенсорцного ПО которое было написано без использования ООП и тем не менее занесено в "жемчужины" кодо-строения. Да и само ООП в изложении различных авторов явно плывёт. Один термин "наследование" чего стоит. Это одна из тем бесконечных холиваров. Особенно когда новичёк начинает проводить параллели между inheritance и наследованием в генетике. Epic fail. Эпичны также топики о наследовании квадрата от прямоугольника. С моей точки зрения более интересным объектом для исследования являются макросы Lisp, монады, комбинаторы и прочие сущности мира ФП. Они просты и гениальны в своей сути. Я ООП воспринимаю просто как объективную реальность и "джентльменские" договрённости о кодинге внутри проекта. У меня нет амбиций в части ООП и я легко соглашаюсь с альтернативными методами декларации чего-либо в ООП коде. Просто я не видя изменений оценки o(n) считаю что речь идёт просто о косметике или о внешнем виде исходника. Из учебной программы ВУЗ-ов можно спокойно убрать ООП и это не изменит качество и разнообразие кода выпускников этого ВУЗа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 09:13 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
SashaMercury1.2 Несмотря на то, что стандартом строго определен access contol членов класса по умолчанию существует возможность указать их в самостоятельно. Как вы поступаете в своих программах на С++ ? Это зависит от. Страуструп говорит, что сейчас оставил бы только public и private. Protected в настоящее время слишком часто используется неправильно и приводит к плохому дизайну. SashaMercury1.3 Существуют ли скрытые проблемы связанные со структурами и объединениями связанные с новой трактовкой данных элементов в С++ при переносе программ из С на С++ ? Что такое Новая Трактовка? Лучше, если на пальцах и с примерами. А то не пойму, о чем речь. SashaMercury1.4 Часто ли вы определяете объекты union в своих программах? Этот объект по определению не может использоваться часто. Их законное использование - экономия памяти при необходимости хранить два "больших", но примерно соразмерных объекта в одном участке памяти (не одновременно!). Типичный (и, наверное, самый распространённый) пример: small string/buffer optimization. - переносимая реализация разных интерфейсов ("побитового" доступа) к "сырым данным". "Вытащить бинарь" можно и другими способами, но вот все они будут не столь переносимы (и могут то работать, то не работать, например, в зависимости от ключей компиляции, например, выравнивания и пр.). - попытка "ручного" полиморфизма, когда хранится значение и "флаг типа значения", используемый при его интерпретации. SashaMercury2. Что такое пространство имён, и зачем оно нужно я понимаю. И мне нравится этот механизм. Мне кажется что каждый объект программы (каждый пользовательский класс) должен быть описан с использованием данного механизма. Это точно не будет ошибкой, и всегда может потребоваться при расширении программы. Используете ли вы данный механизм в своих программах ? Как часто ? Как говорит тот же Страуструп, всякий новый инструмент проходит этап своего чрезмерного и неправильного использования. Просто люди (разработчики) так учатся его использовать. Если есть возможность, это не значит, что так надо делать всегда. Если есть ружьё, это не значит, что нужно выстрелить себе в ногу. SashaMercury3. BS говорит -объявление класса, далее о том, что исторически сложилась фраза определение класса, а позже говорит представление класса. Как говорите вы ? Что-то у вас сумбурно. В С (да и С++) есть понятие definition и declaration, которые наиболее часто переводят на русский как определение и объявление. Также есть связанное с ним понятие forward declaration. Так вот, эти понятия позволяют программисту отделить описание (интерфейса, declaration) от определения/реализации (definition), что есть хорошо. Объявление позволяет - выделить объявления в заголовочные файлы, при включении библиотек в проект не компилировать библиотеку всякий раз, как вы её включаете (справедливости ради, в новом стандарте С++17 для этих целей предлагаются модули) - компилятору провести синтаксическую проверку Вашего кода, не требуя наличия реализации чужих зависимостей. Иными совами, декларация (объявление) - это просто введение соответствующего имени (и его атрибутов) в пространство имён. Определение - это точно указанная реализация. Понятно, что объявление и определение могут быть совмещены (особенно для коротких тривиальных функций). Ну и до кучи ещё один термин - создание экземпляра класса (создание объекта). Понятно, что у Вас будет (почти всегда) не один экземпляр класса, хотя только одно объявление и определение. Про "представление класса". Очень сложно без контекста понять, о чём у Вас идёт речь, т.к. этот термин используется очень часто , и при том с разным смыслом. Без хрустального шара я бы сказал вам посмотреть паттерны (шаблоны проектирования) Model-View-Controller, Facade, Decorator. Эти термины существуют без привязки к языку, хотя и чаше всего встречаются в контексте Java... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 09:50 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
White OwlSashaMercury2. Что такое пространство имён, и зачем оно нужно я понимаю. И мне нравится этот механизм. Мне кажется что каждый объект программы (каждый пользовательский класс) должен быть описан с использованием данного механизма. Это точно не будет ошибкой, и всегда может потребоваться при расширении программы. Используете ли вы данный механизм в своих программах ? Как часто ?Никогда. Это абсолютно бессмысленный механизм. Сделан под давлением моды, но реальной пользы он не несет. В пространстве имен был-бы смысл, если бы в одном проекте использовались несколько "пространств", но в С++ проще и традиционней использовать библиотеки. Каждая библиотека это уже "пространство имен". В итоге единственным фреймворком где это самое пространство имен используется является один единственный std.во, и пространства имён ему не угодили ))) эти то чем провинились? SashaMercury - не слушай WhiteOwl, пространства имён полезны и удобны. Позволяют сократить код, разнести прикладную логику по собственным модулям и явно определяют зависимости между классами. Ну и облегчают именование программных объектов. Я пользуюсь постоянно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 10:29 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
SashaMercury1.2 Несмотря на то, что стандартом строго определен access contol членов класса по умолчанию существует возможность указать их в самостоятельно. Как вы поступаете в своих программах на С++ ?если я пишу простую POD-структуру, то использую правило доступа по умолчанию, во всех остальных случаях предпочитаю разбивать класс на логические куски, и для каждого прописывать явно уровни доступа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 10:38 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
SashaMercury1.1 Почему BS не оставил в языке только один class-key ? Думаю что это связано с совместимостью программ на С и С++, но не уверен в это. Потому что в таком случае объекты struct и union можно было оставить как и ранее, и не говорить что это классы, хотя с другой стороны, struct и union по сути типы определяемые пользователем, потому всё логично. Но я правильности в своих рассуждений я не могу быть уверен.правильно рассуждаешь. Потом почитай дизайн и эволюция С++ , там он отвечает на подобные вопросы, ну и вообще познавательно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 10:42 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
egorychWhite Owlпропущено... Никогда. Это абсолютно бессмысленный механизм. Сделан под давлением моды, но реальной пользы он не несет. В пространстве имен был-бы смысл, если бы в одном проекте использовались несколько "пространств", но в С++ проще и традиционней использовать библиотеки. Каждая библиотека это уже "пространство имен". В итоге единственным фреймворком где это самое пространство имен используется является один единственный std.во, и пространства имён ему не угодили ))) эти то чем провинились? SashaMercury - не слушай WhiteOwl, пространства имён полезны и удобны. Позволяют сократить код, разнести прикладную логику по собственным модулям и явно определяют зависимости между классами. Ну и облегчают именование программных объектов. Я пользуюсь постоянно. В dotNet кажется уже ввели а в Java только в фазе обсуждений т.н. модуляризация или модульность Classes. Это еще один из векторов деления функционала. Скорее всего ориентированного на быструю загрузку ядра системы и прикладного кода а также на улучшение процесса управления исходным кодом на уровне merge GIT/SVN/Mercurial. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 10:56 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
Марк, а разве в Java не package решает эту проблему ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 10:59 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
BagaBaga, Это зависит от. Страуструп говорит, что сейчас оставил бы только public и private. Protected в настоящее время слишком часто используется неправильно и приводит к плохому дизайну. Полностью поддерживаю. На одном из скрам-митингов в Java-проекте мы потратили несколько часов яростных споров по поводу protected в части одного рефакторинга. Я был удручён. Был фикс во внутренние документы касающиеся Code-Style agreement внутри team. И мы решили отказаться от явного использования protected в данном проекте (в некотором скоупе). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 11:02 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
По 1.2 есть куда более простой и очевидный ответ - класс у которого все private в общем случае полностью бесполезен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 11:28 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryМарк, а разве в Java не package решает эту проблему ? Ммм.... не уверен. Я навскидку не помню первоисточник. Но для начала лучше почитать эту статью http://www.javaworld.com/article/2878952/java-platform/modularity-in-java-9.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 11:37 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
SashaMercury1.4 Часто ли вы определяете объекты union в своих программах? Как класс, с методами - редко, но бывает. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 12:53 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
White OwlНикогда. Это абсолютно бессмысленный механизм. Используется в качестве костыля для получения internal linkage типов в новых стандартах. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 12:57 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
egorychне слушай WhiteOwl Из тех что я видел, это лучший совет по изучению С++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 12:58 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
SashaMercury1.1 Почему BS не оставил в языке только один class-key ? Думаю что это связано с совместимостью программ на С и С++, но не уверен в это. Именно поэтому. SashaMercuryПотому что в таком случае объекты struct и union можно было оставить как и ранее, и не говорить что это классы, хотя с другой стороны, struct и union по сути типы определяемые пользователем, потому всё логично. Но я правильности в своих рассуждений я не могу быть уверен. А как тогда от них наследоваться, если это не классы ? SashaMercury1.2 Несмотря на то, что стандартом строго определен access contol членов класса по умолчанию существует возможность указать их в самостоятельно. Как вы поступаете в своих программах на С++ ? Абы как. чаще всего в больших классах есть три секции , private/protected/public, где и описываются соответств. члены. Часто такие секции дублируются отдельно для данных. Иногда секции множатся. Ничего страшного нет. SashaMercury1.3 Существуют ли скрытые проблемы связанные со структурами и объединениями связанные с новой трактовкой данных элементов в С++ при переносе программ из С на С++ ? Нет. Даже если есть проблемы -- они не скрытые, а явные. :-) SashaMercury1.4 Часто ли вы определяете объекты union в своих программах? Очень редко. UNION-ы должны быть POD, и не должны быть членами не POD классов (кажется, так по стандарту), поэтому их применение весьма ограничено в C++, фактически оно сводится к тем функциям, которые возложены на UNION в языке C. SashaMercury2. Что такое пространство имён, и зачем оно нужно я понимаю. И мне нравится этот механизм. Мне кажется что каждый объект программы (каждый пользовательский класс) должен быть описан с использованием данного механизма. Это точно не будет ошибкой, и всегда может потребоваться при расширении программы. Используете ли вы данный механизм в своих программах ? Как часто ? Ну, пространство std используется очень часто. Также часто пространства boost-а. Но вообще пространства имён нужны как воздух только для библиотечного кода, повторноиспользуемого. Там это-- must. Но и то, до введения стандарта было настругано дофигища кода, и он как-то работал без неймспейсов. Некоторые люди по старой традиции их вообще не используют в своём коде. Так что очень всё зависит от проекта. SashaMercury3. BS говорит -объявление класса, далее о том, что исторически сложилась фраза определение класса, а позже говорит представление класса. Как говорите вы ? Это я не понял. Есть предварительное объявление класса, определение класса и реализация (методов и членов) класса. SashaMercury4. Существует ли стандарт в котором дано определение того, что такое ООП ? Нет. Существует стандарт, где дано определение, что такое ООП с точки зрения С++. А так в разных языках очень разные бывают объектные модели. Некоторые очень прикольные. :-) Например, модель питона не подразумевает ограничений на состав членов класса, эти члены могут добавляться находу во время работы программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 14:28 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryНо как в таком случае решать проблемы namespace pollution (нарушение пространства имён) ? В Си стандартом фактически предлагается использование префиксов, в С++ предложили такой выход. Я хочу заметить, что " использование префиксов " в С не может решить данную проблему. Проблема -- это возможное нарушение ODR при использовании множества объектных модулей и библиотек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 14:33 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryНо как в таком случае решать проблемы namespace pollution (нарушение пространства имён) ? Пойми одну простую вещь: С++ разрабатывается не по факту, а теоретиками. Теоретикам кажется что "может быть полезно то, может быть полезно сё". И они эту придумку сразу же запихивают в стандарт. Все радуются, но никто не использует. Да, теоретически проблема namespace pollution может случиться. Когда-нибудь в будущем. В реальности она еще никогда не случалась, но теоретически она может случится. А на практике, вот лениво мне изобретать велосипед. Я беру фреймворк А и начинаю использовать объявленные в нем примитивы. Все чудесно и замечательно. Все функции, классы и константы объявленные внутри фреймворка это namespace A. В каком случае мне понадобится namespace B? Только в одном: если я захочу использовать одновременно с фреймворком A использовать фреймворк B. И тогда, если оба фреймворка содержат примитив foo() мне надо будет указывать из какого именно пространства имен я хочу вытаскивать это foo(). А теперь покажи мне такую пару фреймворков которые надо дополнять друг другом? SashaMercuryWhite Owl По нужде и желанию.Т.е. вы можете писать по-разному ? От чего это например зависит ?От нужды и желания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 18:36 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskyegorychне слушай WhiteOwl Из тех что я видел, это лучший совет по изучению С++.Злые вы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 18:39 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
maytonС моей точки зрения более интересным объектом для исследования являются макросы Lisp, монады, комбинаторы и прочие сущности мира ФП. Они просты и гениальны в своей сути. Я ООП воспринимаю просто как объективную реальность и "джентльменские" договрённости о кодинге внутри проекта. Я предполагаю, ты так думаешь потому, что хорошо знаешь ООП. А функциональщину пока не очень, вот она тебе и кажется круче. Если бы наоборот, ты варился в предыдущие годы в мире ФП, а лишь недавно попробовал ООП, то высказывал бы (возможно) противоположные мысли: Я ФП воспринимаю как объективную реальность... С моей точки зрения более интересны наследование, полиморфизм... maytonИз учебной программы ВУЗ-ов можно спокойно убрать ООП и это не изменит качество и разнообразие кода выпускников этого ВУЗа. А вот с этим я согласен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 21:01 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
maytonВ dotNet кажется уже ввели а в Java только в фазе обсуждений т.н. модуляризация или модульность Classes. Эмм... Имеются в виду частичные (разделённые) классы - partial class? Это здорово облегчает совмещение автогенерированного кода с написанным вручную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 21:04 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
White OwlAnatoly Moskovskyпропущено... Из тех что я видел, это лучший совет по изучению С++.Злые вы. А ты сам виноват. Приобрёл себе репутацию закоренелого олдскульного сишника -- так теперь не жалуйся. Я и сам старый сишник, но зачем же жить всё время устарелыми категориями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 21:31 |
|
||
|
Некоторые вопросы о программировании на C++
|
|||
|---|---|---|---|
|
#18+
MasterZivА ты сам виноват. Приобрёл себе репутацию закоренелого олдскульного сишника -- так теперь не жалуйся.Я не жалуюсь, я хихикаю. MasterZivЯ и сам старый сишник, но зачем же жить всё время устарелыми категориями?Потому что в новых смысла нет. Вот "Си-с-классами" это хорошо. Все остальное можно смело удалять. Все эти шаблоны, неймспейсы, исключения, переопределение операторов - это всё нафиг не нужно. Весь этот синтаксический сахар только добавляет в код нечитабельности и возможностей ошибиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 21:39 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39041988&tid=2018842]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
189ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
89ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 562ms |

| 0 / 0 |
