Opened 4 years ago

Closed 4 years ago

#621 closed ожидается проверка (задача сдана)

WW #10

Reported by: sukhodolskiy.maksim Owned by: Sokolov Viacheslav
Component: WW figures Version: 1.0
Keywords: Cc:

Description


Change History (1)

comment:1 Changed 4 years ago by Sokolov Viacheslav

Resolution: задача сдана
Status: assignedclosed
╰─>$ make
mkdir -p obj
g++ -O2 -Wall -Werror -std=c++11 -Iinclude -c -MMD -o obj/Scheme.o src/Scheme.cpp
In file included from /usr/include/c++/9/cassert:44,
                 from src/Scheme.cpp:3:
src/Scheme.cpp: In member function ‘Figure* Scheme::is_inside_figure(int, int)’:
src/Scheme.cpp:67:12: error: ‘abs’ was not declared in this scope
   67 |     assert(abs(x) <= 1000 && abs(y) <= 1000);
      |            ^~~
src/Scheme.cpp: In member function ‘void Scheme::move(int, int, int)’:
src/Scheme.cpp:79:12: error: ‘abs’ was not declared in this scope
   79 |     assert(abs(new_x) <= 1000 && abs(new_x) <= 1000);
      |            ^~~
Makefile:17: recipe for target 'obj/Scheme.o' failed
make: *** [obj/Scheme.o] Error 1

3 #define MAX_VALUE 2147483647
плохая идея, потому что по названию константы абсолютно непонятно, откуда она и зачем, максимальное значение чего имеется в виду и тд. Кроме того, в c++ константы задаются с помощью ключевых слов static и constexpr, а макросы для этой цели использовать не стоит.
В C есть INT_MAX, в C++ есть std::numeric_limits<int>::max() (нам пока недоступен)

==19794== Mismatched free() / delete / delete []
==19794==    at 0x4C3123B: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==19794==    by 0x10989B: Circle::~Circle() (in /home/nicesap/HSE/svn/sukhodolskiy.maksim/lab_10/lab_10)

чтобы не путать x и this->x удобно гарантировать отличие этих сущностей на уровне codestyle. Например, дописывать в начало/конец членов класса underscore _.

Circle::is_inside реализован неверно

В zoom стоило бы проверить, что factor >= 0 (и в конструкторе неотрицательность радиуса, высоты, ширины).

Note: See TracTickets for help on using tickets.