Wake of Gods Forum | Форум Во Имя Богов

Full Version: С++, общая тема
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 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
Quote:Тело какого-то блока всегда должно отделяться табуляцией от его заголовка, а у тебя даже на последнем скриншоте оно стоит на той же самой вертикали.
Он тогда слишком уходит вправо, из-за чего даже поскроллить не получается - двойной скролл по вертикали и горизонтали.
Quote:Да и большинство программистов (в том числе и я) всё-таки отдают "открывающей скобке" целую строку, хотя это дело вкуса.
Хм, специально поднимал этот вопрос(везде где только мог) ), большинство мне сказало что открывающую лучше всего ставить в той же строке, что и заголовок. Хотя тут наверное больше как понравится. Нужно пробовать)
Quote:На кой чёрт они объявлены внутри h-файла, когда больше никаких cpp-шников у тебя нету?
Удобно же - все переменные там, в любой момент можно посмотреть где какая. Специльное место для них) Отдельно и цивильно так сказать Sm
Quote:Не говоря уже про то, что глобальные переменные сами по себе не есть гут.
Почему? Тогда остро стоит проблема доставание или передача в цикл. А тут элементарно - где хочешь там и вызывай.
Quote:Глянул код - и точно, в нём в четырёх местах используется new, но нету ни одного delete...
А вот с этим не знаком Sm блок с картинками просто копировал, но как он подлинно работает не знаю.
   

Quote:Через неделю отпуск, тогда уж точно гляну (а может, и раньше).
Пока лишь бросилась в глаза пара нюансов:
Не над, этого пока вполне достаточно. Этого и хотел)
Quote:Он тогда слишком уходит вправо, из-за чего даже поскроллить не получается - двойной скролл по вертикали и горизонтали.
Зато читается в сто раз лучше. А размер шрифта можно и уменьшить, если что. И боюсь спросить, что же это за редактор такой - который не позволяет скроллить колёсиком мышки по вертикали, если есть полоса прокрутки по горизонтали?

Quote:Хм, специально поднимал этот вопрос(везде где только мог) ), большинство мне сказало что открывающую лучше всего ставить в той же строке, что и заголовок. Хотя тут наверное больше как понравится.
Почти во всех IDE по C++ обе скобки по умолчанию выделяются в отдельные строки. Думаю, что это о чём-то говорит. Хотя, например, на MSDN большинство кода написано иначе...

Quote:Удобно же - все переменные там, в любой момент можно посмотреть где какая. Специальное место для них) Отдельно и цивильно так сказать.
Когда код чужой, а переменных много - то это нифига не удобно. Не говоря уже про то, что это нарушает принцип инкапсуляции. Любой объект (в том числе и переменная) должен быть доступен лишь в той части кода, где он действительно необходим - и точка. В остальных участках кода он не должен быть виден.

Quote:Почему? Тогда остро стоит проблема доставание или передача в цикл. А тут элементарно - где хочешь там и вызывай.
Мне лень расписывать, "почему". Погугли, об этом до меня ещё тысячу раз говорили. А главная причина всё в том же - ухудшается инкапсуляция. А в C++, абсолютно любой код можно написать вообще без какого-то использования глобальных переменных.

Quote:А вот с этим не знаком Sm блок с картинками просто копировал, но как он подлинно работает не знаю.
new - выделяет блок памяти в ОЗУ, необходимый для создания объекта используемого класса, и вызывает конструктор этого класса.
delete - вызывает деструктор используемого класса, и затем очищает ранее использованную область памяти.
Пакка, вот тебе хорошая статья, в которой наглядно объясняется, почему глобальные переменные - зло.
Там, правда, примеры приводятся на Делфи - но суть от этого не меняется.
(16.04.2012 20:25)Efrit Wrote: [ -> ]- форматирование кода.
это особая, уличная магия стиль Пакки: у команды, которая применяется к блоку, такой же отступ, как и у блока. мутноъ!
(16.04.2012 20:25)Efrit Wrote: [ -> ]Да и большинство программистов всё-таки отдают "открывающей скобке" целую строку
не льсти нам, еретиков больше, чем ты думаешь.
(16.04.2012 20:25)Efrit Wrote: [ -> ]Не говоря уже про то, что глобальные переменные сами по себе не есть гут.
ну смотря когда. иногда можно и сделать одну. errno же
(16.04.2012 21:17)packa Wrote: [ -> ]большинство мне сказало что открывающую лучше всего ставить в той же строке, что и заголовок
это еретики K&R. выбирай. рекомендую стиль Олмана
(16.04.2012 21:17)packa Wrote: [ -> ]Тогда остро стоит проблема доставание или передача в цикл.
подробнее, в чем именно проблема?
(16.04.2012 21:17)packa Wrote: [ -> ]блок с картинками просто копировал, но как он подлинно работает не знаю.
код в студию
По поводу стиля могу сказать, что по некоторым причинам я изменил стил написания кода с саморощенного с кучей вертикальных пробелов на то что рекомендуется в гугл-стайлгайде, и сейчас понимаю как удобно скобку ставить на той же строке. На экран тупо больше вмещается с одной стороны а с другой первые строки функции (по крайней мере у меня) не путаются с заголовком. вот.
с каким еще заголовком?

googlecode Wrote:Spaces vs. Tabs
Use only spaces, and indent 2 spaces at a time.
FFFFUUUUUUUUUUUUUUUU!!!!!! ничего не разберешь же
ну в смысле
void do_something_awesome (double with_this, char* and_this) {
    //Some extraordinry stupid bytes of code with no effect
}
а при переносе скобки 1-я строка станет явно отделенной от второй. на мой взгляд итак ок.
а про табы - ну, очевидно, что надо пробелы тыкать (универсальность там прочая фигня, править удобно) а сам я с детства на 3-х был. когда вижу табуляции по 6 пробелов у меня глаза разъезжаются и я ниче не понимаю Bad с 3х на 2 перешел вообще не заметив разницы Sm
Это "египетские скобки".
Image: h6IEf.jpg
По-моему такой код читать сложнее
Code:
try{
    //код
    if (условие) {
        //код
    }
    //код
    if (другоеусловие) {
        //немного кода
        if (еще одно условие){
            //код
        }
    }                
}
catch (Exception ex){
    //обработка исключения
}
чем такой:
Code:
try
{
    //код
    if (условие)
    {
        //код
    }
    //код
    if (другоеусловие)
    {
        //немного кода
        if (еще одно условие)
        {
            //код
        }
    }                
}
catch (Exception ex)
{
    //обработка исключения
}

В последнем варианте проще визуально сопоставить открывающиеся и закрывающиеся скобки.
gamecreator Wrote:
googlecode Wrote:Spaces vs. Tabs
Use only spaces, and indent 2 spaces at a time.
FFFFUUUUUUUUUUUUUUUU!!!!!! ничего не разберешь же
А по-моему, 2 пробела - самое удобное. Просто нужно использовать моноширинный шрифт. 4 пробела долго писать и всё разъезжается, на мобильных устройствах становится абсолютно нечитаемым.
Deo, На самом деле, это вопрос привычки. я и в первом варианте неплохо это понимаю. С другой стороны, первый вариант намного компактнее что позволяет охватывать взглядом больший кусок кода. А вообще, на вкус и цветстиль товарищей нет.
(17.04.2012 03:45)NIKr0m@nceR Wrote: [ -> ]а при переносе скобки 1-я строка станет явно отделенной от второй.
так это же хорошо, улучшает читаемость
(17.04.2012 03:45)NIKr0m@nceR Wrote: [ -> ]править удобно
ни разу не удобно. с табами - удобно править, да.
(17.04.2012 09:35)Sav Wrote: [ -> ]Просто нужно использовать моноширинный шрифт.
а кто-то не использует?
(17.04.2012 09:35)Sav Wrote: [ -> ]4 пробела долго писать
таб же
Таб во всех, по крайней мере андроидских, виртуальных клавиатурах упрятан чёрти-где, если вообще есть.
ну тогда это вынужденное ограничение, а не удобство
Удобство в принципе создаётся из вынужденных ограничений.
gamecreator, я хз как табы могут быть удобнее пробелов. все равно в начало строки я перемещаюсь кнопкой хоум. ну не вижу я в чем их сила Bad К тому же если у функции параметры в несколько строк писать и отступ некратен величине таба то придется миксовать что не айс.
а насчет скобки - я написал, что итак достаточно отделены имхо
Pages: 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
Reference URL's