| Issue 26: | problem1.4: замечания | |
| 1 person starred this issue and may be notified of changes. | Back to list |
* Убери problem1.4.cpp из svn'а. * Список частых замечаний не прочитан или не осознан. main.cpp: * Лучше явно подключать необходимые заголовочные файлы. long_int_t.h: * Не надо делать using в заголовочных файлах вне классов и функций. Не надо добавлять в глобальную область видимость то, что никто не просил. * BASE и BASE_LENGTH следует сделать членами класса. * Конструктор от вектора лучше сделать private. Снаружи не интересно, как число устроено изнутри. * operator| — это побитовое или, которое вполне имеет смысл для длинных чисел. А то, для чего его используешь ты — очень неочевидно. Надо назвать нормально. * Почему is_negative не оканчивается на символ подчеркивания как все остальные поля? И вообще, как я понимаю, его надо убрать. * search — плохое название. * Два typedef'а в конце — не нужны long_int_t.cpp: * Следует использовать списки инициализации, там где это возможно. * Дефолтный конструктор какой-то подозрительный. * 223 — двойной отступ.
Jun 16, 2011
long_int_t.h: * «Два typedef'а в конце — не нужны» — совсем не нужны. То есть их надо убрать — либо вообще, либо внутрь класса. long_int_t.cpp: * Дефолтный конструктор лучше не стал. Стал даже хуже. Что по-твоему он должен делать? Я всегд думал, что дефолтный конструктор длинного числа должен создавать нечто, эквивалентное нулю. * В методах класса в область видимости и так включается все из этого класса, поэтому явно указывать long_int_t:: не надо. * Выражение после return не обязательно заключать в скобки.
Status:
Accepted
Jun 16, 2011
И еще одно: * Лучше подключать сначала внешние хидеры, и только потом свои. Желательно каждую группу (boost, stl, свои, ...) выделять пустыми строками. Если внутренние хидеры (которые часто добавляют все в глобальное пространство имен) будут объявлены до внешних (в которых все обычно в каком-нибудь неймспейсе), то может случится конфликт имен.
Jun 16, 2011
Я не знаю почему, но у меня студия принципиально не видит BASE_LENGTH без префикса long_int_t::. Остальное поправил.
Status:
Fixed
Jun 16, 2011
Я не знаю почему, но у меня студия принципиально не видит BASE_LENGTH без префикса long_int_t::. * Это, наверняка, было в operator>> и operator<< — они не являются методами класса. В остальных все должно быть ок.
Status:
Accepted
Jun 17, 2011
Поправил. Там и было, а я не обратил внимания, где это было.
Status:
Fixed
Jun 18, 2011
(No comment was entered for this change.)
Status:
Verified
|
Owner: alserg.evaluator
Labels: -Type-Defect -Priority-Medium