- 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_”) тоже облом. Хайтек-шмайтек…
Слышал про приставку f и то без подчёркивания
клованы так приватные св-ва прячат
УправлятьПРОКЛЯТЫМКоличеством
внушает
this->BloodyIncreaseIt();
и префикс можно не использовать, если код строго ООП
Проверка на ноль разве что подозрительна. Про префикс автор вообще не ясно к чему сказал. Вероят но он прочитал лишь одну книжку по программированию, и там использовался такой стиль.
Во-вторых, откуда эта странная манера использовать префиксы типа `m_` на членах класса? Как раз таки именно члены класса прекрасно обходятся без каких-либо префиксов вообще. Может быть Вы еще и методам предлагаете префикс `m_` давать, чтобы с "глобальными" функциями не путать? Нет? Тогда где логика? Если уж Вам нравится префиксная нотация, то префиксы надо давать именно глобальным переменным, ибо они - раритет, а не членам классов.
А нотации могут быть разными. От мелкомягко-венгерской с её m_ и до подчёркивания в конце идентификатора. А ещё можно вкладывать глобальные константы в namespace Const, а его, в свою очередь, в неймспейс анонимный. Тут уж кто на что учился и кто к чему привык. Но вообще не соблюдать хотя бы минимальных правил именования - это как-то не очень серьёзно.
Самое страшное - это когда в коде используется этот самый m_, но исключительно по настроению. Две трети членов классов не имеют вообще никакой идентификации. Некоторые начинаются с подчёркивания только из-за того, что в какой-то метод передали что-то с таким же именем (ну почему не сделать хотя бы наоборот?!). Ещё часть валяется в паблике или протектеде и явно представляется создателями как тот самый "аналог проперти", только без какой-либо возможности добавлять следящий код.
Короче, кодстайл может быть любым. Но он должен существовать и соблюдаться. Иначе - труба.
{
int m_;
public:
A()
: m_(2)
{
int m_ = 3;
int a = m_;
int b = this->m_;
}
};
Отлично компилится и работает в 2008-й студии.
Кроме того, я говорил о схожих именах, а не обязательно одинаковых. Что-нибудь типа index/idx/id, или property/prop.
Это по другому называется. В С++ в этой области ничего не поменялось.
на вкус, видимо, не очень
class C {
int i;
C(int i) : i(i) {}
};
т.е. классная `i` инициализируется из параметра `i`.
И уж всяко не вам менять корпоративный стиль.