#125 closed ожидается проверка (дубликат)
Домашнее задание 4 (2я попытка)
Reported by: | Максим | Owned by: | Vladimir Rutsky |
---|---|---|---|
Priority: | проверка | Milestone: | |
Component: | HA#4 lazy_string | Version: | |
Keywords: | Cc: |
Description
Первая версия ленивой строки.
Есть несколько вопросов:
- В задании указано, что требуется реализовать деструктор класса ленивой строки. Есть ли в этом смысл, если всюду используется vector + shared_prt? Или имелось в виду сделать его виртуальным, чтобы избежать утечек памяти при наследовании от него?
- В этом решении есть недостаток - каждый экземпляр объекта содержит поле size_. В дальнейшем я его планирую убрать, можно ли будет пользоваться для этого методом size у вектора символов?
Максим.
Change History (9)
comment:1 Changed 7 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 7 years ago by
Replying to petrov.maksim:
Первая версия ленивой строки.
Есть несколько вопросов:
- В задании указано, что требуется реализовать деструктор класса ленивой строки. Есть ли в этом смысл, если всюду используется vector + shared_prt? Или имелось в виду сделать его виртуальным, чтобы избежать утечек памяти при наследовании от него?
Можно не реализовывать деструктор, если вам достаточно автоматически сгенерённого компилятором деструктора.
В классе строки не должно быть виртуальных функций.
- В этом решении есть недостаток - каждый экземпляр объекта содержит поле size_. В дальнейшем я его планирую убрать, можно ли будет пользоваться для этого методом size у вектора символов?
Да, если вы используете vector
для хранения буфера символов, то разумно использовать его size()
И не хранить дублирующуюся информацию.
comment:3 Changed 7 years ago by
Tested revision 799 by petrov.maksim.
Main tests
test | stage | result | info | log |
---|---|---|---|---|
gcc62 | SUCCESS | |||
run | FAILURE | exit code 139 | ||
Common header used in some tests: common.h
comment:5 Changed 7 years ago by
Milestone: | ha4-milestone1 → ha4-milestone2 |
---|---|
Summary: | Домашнее задание 4 (1я попытка) → Домашнее задание 4 (2я попытка) |
Type: | ожидаются исправления → ожидается проверка |
Местные тесты проходят успешно.
Удалил из класса строки поле size_
, вместо него теперь используется метод vector::size()
у буфера символов. В буфер добавлен терминальный ноль для корректной работы метода c_str()
.
Жду проверки и замечаний.
Максим.
comment:6 Changed 7 years ago by
Milestone: | ha4-milestone2 → ha4-milestone1 |
---|
Проверка автотестами не считается проверкой, вернул milestone на вторую попытку сдачи, скоро проверю.
comment:7 Changed 7 years ago by
Доброго времени суток, Владимир!
Я уже написал кураторам на почту об уходе из CS центра, не тратьте время на проверку этого задания.
Спасибо за помощь и ценные советы.
comment:8 Changed 7 years ago by
Resolution: | → дубликат |
---|---|
Status: | new → closed |
Здравствуйте, Максим!
Хорошо, я тогда просто закрою тикет.
Успехов!
Tested revision 728 by petrov.maksim.
Smoke tests
test
stage
result
info
log
run_smoke_test.cpp
gcc62
run
valgrind
exit code 1
run_smoke_test-valgrind.log
gcc62-asan
asan
exit code 1
run_smoke_test-asan.log
clang-san
san
exit code 1
run_smoke_test-san.log
Common header used in some tests: common.h