Здравствуйте, Handie, Вы писали:
ГВ>>А чтобы не засирать глобальное пространство имён (если уж это становится проблемой), есть простой выход — завести свой собственный namespace.
H>Генадий, видимо Вы еще не дошли до разработки крупных систем.
Странное дело: разве до разработки крупных систем надо как-то специально "доходить"? Это просто работа, которая либо на тебя сваливается, либо ты сам её "пикапишь". Кстати, коль зашла такая пьянка: что ты имеешь в виду под крупными системами?
H>Я всегда предпочитаю forward declaration вместо включения файла
H>если строка
H>
H>class SuperClass;
H>
H>позволяет избежать
H>
H>#include"SuperClass.h"
H>
H>я всегда предпочту первый вариант
Да, это бывает полезно, если в проекте творится кавардак: все всех подозревают, левая рука не ведает, что творит правая, нет единообразного подхода к дизайну, толкового распределения задач и т.п. Короче говоря, когда все ото всех решительно изолируются самостоятельно. То есть, в общем, кое-какой шухер сбить такой подход позволяет. С другой стороны, ты лишаешься возможности включить экземпляр SuperClass-а по значению:
class SuperClass;
class MyClass : public SuperClass {...} // Болт!...class MyClass1
{
...
SuperClass superMember_; // ...с левой резьбой!
};
Придётся писать что-то в духе pImpl и т.п. Не то, чтобы это было плохо само по себе, но будучи принятым на уровне некоего "правила", сильно ограничивает разработчика.
Извини, что объясняю столь детально.
H>если из неймспеса мне нужно пару сущьностей, я возьму только их:
H>
H>using std::map;
H>using std::string;
H>
H>вместо засирания неймспейса
H>
H>using namespace std;
H>
Кстати, соответствующий инклюд всё равно придётся вставлять, если, конечно, ты не обходишься без использования значений соответствующих типов.
H>Не надо свое невежество выдавать за рекомендации гуру
Я не случайно оговорился в самом начале, что "я не люблю...". Всё вышесказанное как раз иллюстрирует отчасти вкусовой характер этой проблемы — для принятия точных решений нужна статистика использования типов той же STL. Не спорю, может быть, в твоём случае (да и в случае топикстартера тоже) вполне можно обойтись using-type, мне это обычно здорово мешало: писать по полтора десятка using-ов на каждом углу как-то шумновато.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Заверните что нить эдакое с интерфейсами\наследованием\темплейтами.
Покажите что понимаете области видимости, что такое константные обьекты\методы\мутабл,
исключения как работают, оператор перегрузите ну и т.д.
Вообщем возьмите учебник по С++, пройдитесь по разделам, и найдете много чего что можно
показать в своем демонстрационном коде по С++.
Здравствуйте, 8bit, Вы писали:
8>Вообщем возьмите учебник по С++, пройдитесь по разделам, и найдете много чего что можно 8>показать в своем демонстрационном коде по С++.
Представляешь, как встанут волосы дыбом у собеседователей, если последовать такому совету?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, 8bit, Вы писали:
ГВ>>Представляешь, как встанут волосы дыбом у собеседователей, если последовать такому совету?
8>Всмысле?
В прямом.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, 8bit, Вы писали:
8>Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>>Представляешь, как встанут волосы дыбом у собеседователей, если последовать такому совету?
8>Всмысле?
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, 8bit, Вы писали: 8>Вообщем возьмите учебник по С++, пройдитесь по разделам, и найдете много чего что можно 8>показать в своем демонстрационном коде по С++. ГВ>>>Представляешь, как встанут волосы дыбом у собеседователей, если последовать такому совету? 8>>Всмысле? ГВ>В прямом.
От чего волосы-то дыбом?
Если что, я не имел ввиду переписать себе код из книжки или написать примеры для всего и вся
Здравствуйте, 8bit, Вы писали:
ГВ>>Представляешь, как встанут волосы дыбом у собеседователей, если последовать такому совету? 8>Всмысле?
В прямом смысле. По примеру кода (не скажу, что все, но почти все, с кем мне приходилось сталкиваться, да и я сам тоже) пытаются сделать вывод о том, как человек будет писать код в повседневных условиях. Не тогда, когда он специально готовится к показу своей крутизны, а как он будет день за днём лопатить килобайты своего и чужого кода. То есть здесь на самом деле важны не столько продвинутые техники, сколько нюансы вроде std::string, переданных по значению без особой нужды, последовательности в стиле оформления, стиль комментирования, подход к обработке ошибок, прочие подобные характеристики, которые "проходят через весь код". Потому что такие моменты человек вписывает полуавтоматически, чуть ли не на спинномозговых реакциях. Опять таки, могут быть применены и шаблоны, и исключения, и, не побоюсь этого слова, виртуальные деструкторы — но всё должно быть к месту и в меру. Потому, кстати, часто просят пример продуктового кода. Это вовсе не для того, чтобы спереть очередную великую идею гениального велосипеда на тэтраидальных колёсах, а чтобы посмотреть на вот те самые нюансы. Понятно, что код примера будет несколько подчищен, но я тебе ручаюсь — всех нюансов без специальной подготовки (которая равна, по сути, повышению квалификации) всё равно не вычистить.
Вот теперь представь, что в такой контекст ты закидываешь для анализа что-то вроде упражнения по книге Александреску, или сборник приёмов по главам из ARM.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Roman Odaisky, Вы писали:
RO>Здравствуйте, Northaunt, Вы писали:
N>>Кстати, глюки со смещением, не моих рук дело, в окне Visual Studio все ровно. Это при отправке сообщения строчки начинает косить
RO>Твоих. Ты явно выравниваешь колонки табуляциями, чего делать нельзя (расползется при другом размере табуляции).
RO>Табуляции допустимы только для отступов, и то спорно (я вот использую пробелы вообще везде).
Ложь, tab/spaces зависит от code-style принятого в проекте.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Вот теперь представь, что в такой контекст ты закидываешь для анализа что-то вроде упражнения по книге Александреску, или сборник приёмов по главам из ARM.
вон оно что, понятно Ну так он же начинающий программист. Тут надо смотреть умеет ли он этим С++ вообще пользоваться.
А нюансы и тут видны будут.
Здравствуйте, 8bit, Вы писали:
ГВ>>Вот теперь представь, что в такой контекст ты закидываешь для анализа что-то вроде упражнения по книге Александреску, или сборник приёмов по главам из ARM.
8>вон оно что, понятно Ну так он же начинающий программист. Тут надо смотреть умеет ли он этим С++ вообще пользоваться. 8>А нюансы и тут видны будут.
Угу, о чём и идёт речь с самого начала. Немного в иносказательном стиле, но тем не менее.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, bnk, Вы писали:
bnk>Блэкджек и шлюхи отдыхают
Мда... Православный буст головного мозга в полный рост.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Угу, о чём и идёт речь с самого начала. Немного в иносказательном стиле, но тем не менее.
Так я и говорю, пусть напишет код как он знает С++, без перегибов конечно, и по нему и нюансы и знание С++ будет видно.
А сейчас у него три страницы DX кода и плюсов там совсем не видно.
Здравствуйте, 8bit, Вы писали:
ГВ>>Угу, о чём и идёт речь с самого начала. Немного в иносказательном стиле, но тем не менее.
8>Так я и говорю, пусть напишет код как он знает С++, без перегибов конечно, и по нему и нюансы и знание С++ будет видно. 8>А сейчас у него три страницы DX кода и плюсов там совсем не видно.
Не-не-не, ты не понял. Смотрят в примере не столько на знание C++ (это можно определить собеседованием), сколько на то, правильно ли он используется в разных закоулках. Вопросы вида: "А знает ли автор об XXXXX?" — это уже вторая производная от суммы наблюдений. Ну и ещё играет роль общая культура программирования, которая от языка не зависит. Это может быть даже DX-код, нет проблем. C++ — объёмный язык, а задачи, которые решает данный кандидат вполне могут не требовать применения каких-то аспектов самого C++ (к примеру — volatile-модификаторы нужны очень не всегда, да и виртуальные деструкторы, не к ночи будь помянуты, тоже).
Так что, код тописктартера, ИМХО, вполне подходит для демо-кода, разве что длинноват, имело бы смысл выбрать что-то покороче. Но справедливости ради, в конечном итоге ТС так и поступил.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, vpchelko, Вы писали:
N>>>Кстати, глюки со смещением, не моих рук дело, в окне Visual Studio все ровно. Это при отправке сообщения строчки начинает косить RO>>Твоих. Ты явно выравниваешь колонки табуляциями, чего делать нельзя (расползется при другом размере табуляции). RO>>Табуляции допустимы только для отступов, и то спорно (я вот использую пробелы вообще везде).
V>Ложь, tab/spaces зависит от code-style принятого в проекте.
Табуляции не в начале строки неприемлемы ни при каких условиях. Единственное преимущество табуляций — возможность настроить их размер — в этом случае сводится на нет.
Здравствуйте, Cyberax, Вы писали:
C>Стоит использовать деструкторы и умные указатели, а не лепить явные Release.
Кстати, это не всегда так. Был у меня случай, когда исключения летели как раз из Release, а в последовательности деструкторов умных указателей копаться — ой, неудобно.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
8>Так я и говорю, пусть напишет код как он знает С++, без перегибов конечно, и по нему и нюансы и знание С++ будет видно. 8>А сейчас у него три страницы DX кода и плюсов там совсем не видно.
Плюсов там ровно столько сколько нужно в реальном проекте и это топикстартеру только в плюс. Смарт пойнтеры только еще желательно было бы использовать.