Current time: 01.02.2025, 23:45 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
С++, общая тема
Author Message
packa Offline

Posts: 1210
Post: #181

Quote:Тело какого-то блока всегда должно отделяться табуляцией от его заголовка, а у тебя даже на последнем скриншоте оно стоит на той же самой вертикали.
Он тогда слишком уходит вправо, из-за чего даже поскроллить не получается - двойной скролл по вертикали и горизонтали.
Quote:Да и большинство программистов (в том числе и я) всё-таки отдают "открывающей скобке" целую строку, хотя это дело вкуса.
Хм, специально поднимал этот вопрос(везде где только мог) ), большинство мне сказало что открывающую лучше всего ставить в той же строке, что и заголовок. Хотя тут наверное больше как понравится. Нужно пробовать)
Quote:На кой чёрт они объявлены внутри h-файла, когда больше никаких cpp-шников у тебя нету?
Удобно же - все переменные там, в любой момент можно посмотреть где какая. Специльное место для них) Отдельно и цивильно так сказать Sm
Quote:Не говоря уже про то, что глобальные переменные сами по себе не есть гут.
Почему? Тогда остро стоит проблема доставание или передача в цикл. А тут элементарно - где хочешь там и вызывай.
Quote:Глянул код - и точно, в нём в четырёх местах используется new, но нету ни одного delete...
А вот с этим не знаком Sm блок с картинками просто копировал, но как он подлинно работает не знаю.
   

Quote:Через неделю отпуск, тогда уж точно гляну (а может, и раньше).
Пока лишь бросилась в глаза пара нюансов:
Не над, этого пока вполне достаточно. Этого и хотел)


подпись была удалена администрацией
просьба не использовать картинки с сайта heroeslibrary.net, так как на них ругается Chrome
16.04.2012 21:17
Find all posts by this user Quote this message in a reply
Efrit Offline
Administrators

Posts: 6184
Post: #182

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

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

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

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

Quote:А вот с этим не знаком Sm блок с картинками просто копировал, но как он подлинно работает не знаю.
new - выделяет блок памяти в ОЗУ, необходимый для создания объекта используемого класса, и вызывает конструктор этого класса.
delete - вызывает деструктор используемого класса, и затем очищает ранее использованную область памяти.


Welcome!
16.04.2012 21:43
Find all posts by this user Quote this message in a reply
Efrit Offline
Administrators

Posts: 6184
Post: #183

Пакка, вот тебе хорошая статья, в которой наглядно объясняется, почему глобальные переменные - зло.
Там, правда, примеры приводятся на Делфи - но суть от этого не меняется.


Welcome!
16.04.2012 22:27
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #184

(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:  блок с картинками просто копировал, но как он подлинно работает не знаю.
код в студию


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
16.04.2012 23:47
Find all posts by this user Quote this message in a reply
NIKr0m@nceR Offline

Posts: 203
Post: #185

По поводу стиля могу сказать, что по некоторым причинам я изменил стил написания кода с саморощенного с кучей вертикальных пробелов на то что рекомендуется в гугл-стайлгайде, и сейчас понимаю как удобно скобку ставить на той же строке. На экран тупо больше вмещается с одной стороны а с другой первые строки функции (по крайней мере у меня) не путаются с заголовком. вот.
17.04.2012 01:04
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #186

с каким еще заголовком?

googlecode Wrote:Spaces vs. Tabs
Use only spaces, and indent 2 spaces at a time.
FFFFUUUUUUUUUUUUUUUU!!!!!! ничего не разберешь же


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
(This post was last modified: 17.04.2012 02:25 by gamecreator.)
17.04.2012 02:21
Find all posts by this user Quote this message in a reply
NIKr0m@nceR Offline

Posts: 203
Post: #187

ну в смысле
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
17.04.2012 03:45
Find all posts by this user Quote this message in a reply
Deo Offline

Posts: 494
Post: #188

Это "египетские скобки".
Image: h6IEf.jpg
По-моему такой код читать сложнее
Code:
try{
    //код
    if (условие) {
        //код
    }
    //код
    if (другоеусловие) {
        //немного кода
        if (еще одно условие){
            //код
        }
    }                
}
catch (Exception ex){
    //обработка исключения
}
чем такой:
Code:
try
{
    //код
    if (условие)
    {
        //код
    }
    //код
    if (другоеусловие)
    {
        //немного кода
        if (еще одно условие)
        {
            //код
        }
    }                
}
catch (Exception ex)
{
    //обработка исключения
}

В последнем варианте проще визуально сопоставить открывающиеся и закрывающиеся скобки.
17.04.2012 07:49
Find all posts by this user Quote this message in a reply
Sav Offline

Posts: 2180
Post: #189

gamecreator Wrote:
googlecode Wrote:Spaces vs. Tabs
Use only spaces, and indent 2 spaces at a time.
FFFFUUUUUUUUUUUUUUUU!!!!!! ничего не разберешь же
А по-моему, 2 пробела - самое удобное. Просто нужно использовать моноширинный шрифт. 4 пробела долго писать и всё разъезжается, на мобильных устройствах становится абсолютно нечитаемым.
17.04.2012 09:35
Find all posts by this user Quote this message in a reply
NIKr0m@nceR Offline

Posts: 203
Post: #190

Deo, На самом деле, это вопрос привычки. я и в первом варианте неплохо это понимаю. С другой стороны, первый вариант намного компактнее что позволяет охватывать взглядом больший кусок кода. А вообще, на вкус и цветстиль товарищей нет.
17.04.2012 10:29
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #191

(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 пробела долго писать
таб же


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
17.04.2012 10:58
Find all posts by this user Quote this message in a reply
Sav Offline

Posts: 2180
Post: #192

Таб во всех, по крайней мере андроидских, виртуальных клавиатурах упрятан чёрти-где, если вообще есть.
17.04.2012 11:22
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #193

ну тогда это вынужденное ограничение, а не удобство


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
17.04.2012 12:04
Find all posts by this user Quote this message in a reply
Sav Offline

Posts: 2180
Post: #194

Удобство в принципе создаётся из вынужденных ограничений.
17.04.2012 12:10
Find all posts by this user Quote this message in a reply
NIKr0m@nceR Offline

Posts: 203
Post: #195

gamecreator, я хз как табы могут быть удобнее пробелов. все равно в начало строки я перемещаюсь кнопкой хоум. ну не вижу я в чем их сила Bad К тому же если у функции параметры в несколько строк писать и отступ некратен величине таба то придется миксовать что не айс.
а насчет скобки - я написал, что итак достаточно отделены имхо
(This post was last modified: 17.04.2012 13:49 by NIKr0m@nceR.)
17.04.2012 13:43
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2025 MyBB Group