Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#125 closed ожидается проверка (дубликат)

Домашнее задание 4 (2я попытка)

Reported by: Максим Owned by: Vladimir Rutsky
Priority: проверка Milestone:
Component: HA#4 lazy_string Version:
Keywords: Cc:

Description

Первая версия ленивой строки.

Есть несколько вопросов:

  1. В задании указано, что требуется реализовать деструктор класса ленивой строки. Есть ли в этом смысл, если всюду используется vector + shared_prt? Или имелось в виду сделать его виртуальным, чтобы избежать утечек памяти при наследовании от него?
  2. В этом решении есть недостаток - каждый экземпляр объекта содержит поле size_. В дальнейшем я его планирую убрать, можно ли будет пользоваться для этого методом size у вектора символов?

Максим.

Change History (9)

comment:1 Changed 7 years ago by cpptester

Type: ожидается проверкаожидаются исправления

Tested revision 728 by petrov.maksim.

Smoke tests

test

stage

result

info

log

run_smoke_test.cpp

gcc62

SUCCESS

run

SUCCESS

valgrind

FAILURE

exit code 1

run_smoke_test-valgrind.log

gcc62-asan

SUCCESS

asan

FAILURE

exit code 1

run_smoke_test-asan.log

clang-san

SUCCESS

san

FAILURE

exit code 1

run_smoke_test-san.log

Common header used in some tests: common.h

comment:2 in reply to:  description Changed 7 years ago by Vladimir Rutsky

Replying to petrov.maksim:

Первая версия ленивой строки.

Есть несколько вопросов:

  1. В задании указано, что требуется реализовать деструктор класса ленивой строки. Есть ли в этом смысл, если всюду используется vector + shared_prt? Или имелось в виду сделать его виртуальным, чтобы избежать утечек памяти при наследовании от него?

Можно не реализовывать деструктор, если вам достаточно автоматически сгенерённого компилятором деструктора.
В классе строки не должно быть виртуальных функций.

  1. В этом решении есть недостаток - каждый экземпляр объекта содержит поле size_. В дальнейшем я его планирую убрать, можно ли будет пользоваться для этого методом size у вектора символов?

Да, если вы используете vector для хранения буфера символов, то разумно использовать его size() И не хранить дублирующуюся информацию.

comment:3 Changed 7 years ago by cpptester

Tested revision 799 by petrov.maksim.

Main tests

test

stage

result

info

log

run_index_assign_assign.cpp

gcc62

SUCCESS

run

FAILURE

exit code 139

run_index_assign_assign-run.log

Common header used in some tests: common.h

comment:4 Changed 7 years ago by cpptester

Tested revision 800 by petrov.maksim.

All tests passed. Good job!

comment:5 Changed 7 years ago by Максим

Milestone: ha4-milestone1ha4-milestone2
Summary: Домашнее задание 4 (1я попытка)Домашнее задание 4 (2я попытка)
Type: ожидаются исправленияожидается проверка

Местные тесты проходят успешно.
Удалил из класса строки поле size_, вместо него теперь используется метод vector::size() у буфера символов. В буфер добавлен терминальный ноль для корректной работы метода c_str().
Жду проверки и замечаний.

Максим.

comment:6 Changed 7 years ago by Vladimir Rutsky

Milestone: ha4-milestone2ha4-milestone1

Проверка автотестами не считается проверкой, вернул milestone на вторую попытку сдачи, скоро проверю.

comment:7 Changed 7 years ago by Максим

Доброго времени суток, Владимир!

Я уже написал кураторам на почту об уходе из CS центра, не тратьте время на проверку этого задания.

Спасибо за помощь и ценные советы.

comment:8 Changed 7 years ago by Vladimir Rutsky

Resolution: дубликат
Status: newclosed

Здравствуйте, Максим!

Хорошо, я тогда просто закрою тикет.

Успехов!

comment:9 Changed 7 years ago by Vladimir Rutsky

Milestone: ha4-milestone1

Milestone ha4-milestone1 deleted

Note: See TracTickets for help on using tickets.