Создание неограниченного количества элементов |
Здравствуйте, гость ( Вход | Регистрация )
Создание неограниченного количества элементов |
BRE |
13.8.2010, 8:27
Сообщение
#41
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Алексей1153, я вовсе не занудствую.
Ты предлагаешь свой код человеку, который учиться. Этот код избыточен. Для чего учить человека писать избыточный код? У тебя это вошло в привычку, но не обязательно (и, наверное, не правильно), что бы это вошло в его привычку. Отсюда и мой комментарий. |
|
|
Алексей1153 |
13.8.2010, 8:34
Сообщение
#42
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
BRE, дык, я ж ничего. У всех свой стиль, он прочитает всё, что мы тут понаписали - и выберет теперь свой стиль. Правильно рассуждаю ? ))
|
|
|
DEADHUNT |
13.8.2010, 10:25
Сообщение
#43
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
Не забывай также удалить через delete (как вариант, можно сделать оболочку для указателя, чтобы не приходилось вызывать delete вручную зачем делать то, что уже сделали в C++0x/boost/Qt? причём данная реализация не совсем корректна (нету конструктора копирования, нету конструктора перемещения(для C++0x), и прочие мелочи) Сообщение отредактировал DEADHUNT - 13.8.2010, 10:25 |
|
|
Алексей1153 |
13.8.2010, 10:39
Сообщение
#44
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
DEADHUNT, я вообще про C++ речь веду. А где, кстати, в Qt это есть?
А про "не совсем корректность" - так вектору не нужен конструктор копирования и прочие мелочи, там оператор присваивания только нужен. Всё остальное - "избыточность кода" © BRE Ненужные препирательства всё это. Я подсказал путь, а решений - туча, каждому нравится своё |
|
|
DEADHUNT |
13.8.2010, 14:00
Сообщение
#45
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
А где, кстати, в Qt это есть? QScopedPointer/QSharedPointer А про "не совсем корректность" - так вектору не нужен конструктор копирования и прочие мелочи, там оператор присваивания только нужен. посмотри стандарт, там есть требования к элементам контейнера - конструктор по умолчанию, конструктор копирования, деструктор, etc. в твоем примере получается что ты не реализовал конструктор копирования, компилятор создал его(но не так как требует семантика умного указателя). Сообщение отредактировал DEADHUNT - 13.8.2010, 14:00 |
|
|
Litkevich Yuriy |
13.8.2010, 15:53
Сообщение
#46
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Алексей1153 |
13.8.2010, 16:08
Сообщение
#47
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
а где сей стандарт глядеть?
А насчёт корректности работы - оно работает, одного только оператора присваивания достаточно. Правда, у меня в проекте std::vector используется, но работает без ошибок - очень хорошо и длительно тестировано |
|
|
DEADHUNT |
13.8.2010, 16:47
Сообщение
#48
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
http://open-std.org/JTC1/SC22/WG21/docs/pa.../2010/n3090.pdf
насчёт работы это как раз из-за твоего зануления указателя в деструкторе, потому-что деструктор вызывается несколько раз вместо одного, попробуй сделать так в своём классе:
или так
и увидешь где используется конструктор копирования. Сообщение отредактировал DEADHUNT - 13.8.2010, 16:48 |
|
|
Litkevich Yuriy |
13.8.2010, 17:33
Сообщение
#49
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Алексей1153 |
13.8.2010, 17:54
Сообщение
#50
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Синтаксис я тоже не понял что означает "= delete" и "= default" после прототипа функции?
|
|
|
Текстовая версия | Сейчас: 2.12.2024, 17:07 |