- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
void CDAMN::ControlDAMNAmount(DWORD newValue)
{
if(newValue != 0)
controlDAMNAmount = newValue;
}
DWORD CDAMN::ControlDAMNAmount()
{
return controlDAMNAmount;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+146
void CDAMN::ControlDAMNAmount(DWORD newValue)
{
if(newValue != 0)
controlDAMNAmount = newValue;
}
DWORD CDAMN::ControlDAMNAmount()
{
return controlDAMNAmount;
}
Автор тот же
Две функции с одним именем. Одна изменяет внутреннее поле (член класса)- другая возвращает его значение. Использовать приставки get_ и set_ недосуг как-то. Да и называть внутренние переменные класса так, чтобы было понятно, что они не глобальные (с приставкой “m_”) тоже облом. Хайтек-шмайтек…
pushkoff 14.02.2011 18:28 # +3
guest 14.02.2011 18:36 # +5
gorsash 14.02.2011 18:38 # −2
Слышал про приставку f и то без подчёркивания
Анонимус 15.02.2011 23:40 # +1
клованы так приватные св-ва прячат
PascalGovno 14.02.2011 19:26 # +3
УправлятьПРОКЛЯТЫМКоличеством
внушает
this->BloodyIncreaseIt();
brainstorm 15.02.2011 14:01 # 0
Lure Of Chaos 14.02.2011 19:39 # +4
и префикс можно не использовать, если код строго ООП
ReallyBugMeNot 14.02.2011 20:08 # +4
Проверка на ноль разве что подозрительна. Про префикс автор вообще не ясно к чему сказал. Вероят но он прочитал лишь одну книжку по программированию, и там использовался такой стиль.
TheCalligrapher 14.02.2011 20:47 # +6
Во-вторых, откуда эта странная манера использовать префиксы типа `m_` на членах класса? Как раз таки именно члены класса прекрасно обходятся без каких-либо префиксов вообще. Может быть Вы еще и методам предлагаете префикс `m_` давать, чтобы с "глобальными" функциями не путать? Нет? Тогда где логика? Если уж Вам нравится префиксная нотация, то префиксы надо давать именно глобальным переменным, ибо они - раритет, а не членам классов.
ShuraKotov 14.02.2011 21:53 # −3
TheCalligrapher 14.02.2011 23:10 # +6
Kirinyale 14.02.2011 23:46 # −3
А нотации могут быть разными. От мелкомягко-венгерской с её m_ и до подчёркивания в конце идентификатора. А ещё можно вкладывать глобальные константы в namespace Const, а его, в свою очередь, в неймспейс анонимный. Тут уж кто на что учился и кто к чему привык. Но вообще не соблюдать хотя бы минимальных правил именования - это как-то не очень серьёзно.
Самое страшное - это когда в коде используется этот самый m_, но исключительно по настроению. Две трети членов классов не имеют вообще никакой идентификации. Некоторые начинаются с подчёркивания только из-за того, что в какой-то метод передали что-то с таким же именем (ну почему не сделать хотя бы наоборот?!). Ещё часть валяется в паблике или протектеде и явно представляется создателями как тот самый "аналог проперти", только без какой-либо возможности добавлять следящий код.
Короче, кодстайл может быть любым. Но он должен существовать и соблюдаться. Иначе - труба.
absolut 15.02.2011 00:04 # −6
Kirinyale 15.02.2011 00:09 # +4
{
int m_;
public:
A()
: m_(2)
{
int m_ = 3;
int a = m_;
int b = this->m_;
}
};
Отлично компилится и работает в 2008-й студии.
Кроме того, я говорил о схожих именах, а не обязательно одинаковых. Что-нибудь типа index/idx/id, или property/prop.
absolut 15.02.2011 00:39 # −1
guest 15.02.2011 11:05 # −1
Это по другому называется. В С++ в этой области ничего не поменялось.
absolut 15.02.2011 11:12 # −2
guest 15.02.2011 11:16 # −3
absolut 15.02.2011 11:38 # +1
guest 15.02.2011 13:36 # −3
bugmenot 15.02.2011 15:13 # −1
guest 16.02.2011 01:52 # +3
striker 17.02.2011 05:31 # +6
absolut 17.02.2011 09:23 # +1
istem 17.02.2011 11:04 # 0
istem 17.02.2011 11:12 # 0
absolut 17.02.2011 11:47 # +2
на вкус, видимо, не очень
TheCalligrapher 15.02.2011 02:05 # +4
class C {
int i;
C(int i) : i(i) {}
};
т.е. классная `i` инициализируется из параметра `i`.
gegMOPO4 14.02.2011 20:55 # −2
И уж всяко не вам менять корпоративный стиль.
Altravert 15.02.2011 15:22 # +1