#14 closed ожидается проверка (задача сдана)
HA-1: Matrices
Reported by: | Viacheslav Kukushkin | Owned by: | Vladimir Rutsky |
---|---|---|---|
Priority: | проверка | Milestone: | |
Component: | HA#1 matrices | Version: | |
Keywords: | Cc: |
Description
Проверьте, пожалуйста.
http://trac.compscicenter.ru/svn/cpp16/kukushkin.vyacheslav/
commit# 41
Change History (7)
comment:1 Changed 8 years ago by
Milestone: | ha1-milestone1 → ha1-milestone2 |
---|---|
Type: | ожидается проверка → ожидаются исправления |
comment:2 Changed 8 years ago by
Status: | new → assigned |
---|
Добрый день! исправил ошибки, указанные вами - проверьте, пожалуйста, второй раз.
исправления ошибок по milestone1:
- ловить исключения по ссылке
- вынести class Matrix в matrices.hpp
- отделить системные инклуды от своих
- const на всё
- управление памятью: пусть всем занимается RAII
[Matrix *A = new Matrix(...) ==> Matrix A(...)]
comment:3 Changed 7 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
comment:4 Changed 7 years ago by
Milestone: | ha1-milestone2 → ha1-deadline |
---|---|
Type: | ожидается проверка → ожидаются исправления |
Замечания:
- Сейчас вы включаете
matrices.cpp
внутрьmain.cpp
--- так делать нельзя. Разберитесь, пожалуйста, с единицами трансляции и заголовочными файлами. Если что-то не получается или вы чего-то не понимаете --- смело задавайте вопросы.
Возможно у вас просто не получилось скомпилировать две единицы трансляции?
Вы используете CMake? Попробуйте вCMakeLists.txt
в качествеSOURCE_FILES
указать иmain.cpp
иmatrices.cpp
:
set(SOURCE_FILES main.cpp matrices.cpp) add_executable(ha1 ${SOURCE_FILES})
std::__cxx11::string
--- это класс из внутренней области видимости определённой реализации стандартной библиотеки (__cxx11
начинается с двух подчеркиваний), используйтеstd::string
.
- В
matrices.cpp
вы делаетеusing namespace std;
, но по факту используете имена с явным указанием области видимостиstd
:std::runtime_error
,std::size_t
. Можно удалитьusing namespace std;
.
comment:5 Changed 7 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
Добрый вечер,
Исправил.
1) Действительно, я включал cpp
вместо hpp
, т.к. не мог скомпилировать иначе. Настроил Cmake, как вы предложили - всё стало хорошо, спасибо
2) исправил
3) оставил using namespace std
, но убрал прямые обращения к типам: std::size_t
=> size_t
comment:6 Changed 7 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Решение зачтено.
Замечания:
*.cpp
/*.c++
/*.CC
файлах *единицы трансляции*, а в*.hpp
/*.h
заголовочные файлы, позволяющие переиспользовать код (и допускающие включение в произвольное количество единиц трансляции). Определение в нескольких единиц трансляции одной сущности приведёт к нарушению One Definition Rule (ODR).A
вmain()
не освобождается../matrices 5.txt --add 2.txt
здесь: