kb0xd34df00d 26.08.2011 12:00 Gajim

ЧТО НЕ ТАК В ЭТОМ КОДЕ? http://company.yandex.ru/job/vacancies/p... (вопрос №6)

1. werehuman 26.08.2011 12:08

В конструкторе Feature я бы заменил points(0) на points(NULL) — так понятнее. stdio на iostream, но это не обязательно. drawCircle и drawPoligon смотрятся чужеродными: они вполне могли бы юзать поле класса points, но тем не менее требуют на вход отдельные точки. По мне так сюда напрашиваются разные абстракции, классы Figure, Circle, Square, Poligon, конструкторы, dynamic_cast и прочее говно.

2. 0xd34df00d 26.08.2011 12:11 Azoth_primary

1. Проверять в деструкторе не обязательно, ноль удалять вполне ок.
2. isValid() лучше сделать сonst'ом. Как и, возможно, draw* всякие.
3. Ну, предположим, что draw* они просто так не определили, ибо лень в примере расписывать.
4. В read, там, где выделяется память под точки, утечет эта самая память, если последовательно вызывать read у одного объекта. Надо удалять/обнулять points в начале функции, например.
5. Я бы, если прочитано не n точек, тоже делал объект сразу инвалидом, а то ХУИТА и МУСОР.
6. И если points не выделилось, то тоже инвалидом.
7. Амперсанд у points лишний, там, в fread. Хуита, памяти пизда.
8. Магические числа в коде (3, 6, 8, последние два в особенности). Говно.
9. Файл не закрывается в main'е.

С первого прочтения вроде все. И пока писал, кажется, чо-та забыл :(

3. werehuman0xd34df00d /2 26.08.2011 12:12 Psi+

да, я дохуя не заметил косяков

4. 0xd34df00d0xd34df00d /2 26.08.2011 12:13 Azoth_primary

Ну и да, естественно, не стоит забывать про слегка нелепо смотрящееся stdio.h рядом с классами и прочей хуйней. И отсутствие RAII. Вместо double *points можно юзать boost::shared_array<double>, например.

5. 0xd34df00d0xd34df00d /4 26.08.2011 12:14 Azoth_primary

Ну и polygon все же по-другому пишется, но это уже придирки.

6. kb0xd34df00d /5 26.08.2011 12:15 Gajim

Poly gone или как?

7. 0xd34df00dkb /6 26.08.2011 12:15 Azoth_primary

Как я написал. Polygon.

8. werehumankb /6 26.08.2011 12:15 Psi+

polygon же. У них poligon

9. kb0xd34df00d /7 26.08.2011 12:15 Gajim

аа, да, я думал ты говоришь у них polygon. ок

10. jtootf 26.08.2011 12:19

то есть закат солнца вручную никого не смущает? :)

11. werehumanjtootf /10 26.08.2011 12:19 Psi+

чтоу?

12. 0xd34df00djtootf /10 26.08.2011 12:22 Azoth_primary

Слишком глобально. Ну давай понакрутим сюда boost.serialization, чо.

13. jtootf0xd34df00d /12 26.08.2011 12:22 mcabber.0e676862

facepalm

14. 0xd34df00djtootf /13 26.08.2011 12:24 Azoth_primary

К таким заданиям можно подходить с двух сторон (кстати, обе они упомянуты в задании): либо минимальное количество правок текущему коду, чтобы он был корректен, вменяем и работал, либо как бы ты сам написал код, который бы выполнял это (== полный рефакторинг). В /0 было про первый вопрос ;)

Do you really want to delete ?