![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 28.01.2009
Сообщений: 75
|
![]()
Всем привет. Столкнулся с непонятной ситуацией, прошу помочь разобраться.
Есть простейшая программа: PHP код:
Код:
Надеюсь на вашу помощь ![]() |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 28.01.2009
Сообщений: 75
|
![]()
Похоже, что причиной всего являются тонкости работы insert и pair. На самом деле создается еще один объект, это легко заметить, тк после getch() в консоль падает еще одно сообщение "Destructed A".
После нескольких минут раздумий над столь парадоксальной на первый взгляд ситуацией ответ был найден ![]() |
![]() |
![]() |
![]() |
#3 |
С++
Форумчанин
Регистрация: 22.09.2008
Сообщений: 791
|
![]()
Конструкторы бывают и другие. Учитывая 11ый стандарт, есть еще два:
Код:
Форматируйте код, будьте людьми.
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 28.01.2009
Сообщений: 75
|
![]()
Granus, опередил Вас на долю секунды)
А вообще такой ситуации легко избежать храня в map указатели на объекты, это особенно важно если в классе есть статические поля. Последний раз редактировалось theYozh; 02.12.2012 в 22:57. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]()
m.insert(pair<int, A>(1,A()));
pair<int, A>(1,A()) создает временный объект. A() создает временный объект. Итого: 2 диструктора временных объектов, и ещё 1 по завершении приложения, когда оканчивается срок жизни map<int, A> m; 2003 стандарт |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ни один конструктор не смог принять исходный тип. c++ | Neolit1819 | Помощь студентам | 3 | 30.03.2011 23:37 |
Вставка пары в отсортированный map. | the_deer_one | Общие вопросы C/C++ | 3 | 28.08.2010 15:42 |
Как прописать три разных состояния объекта? | Timon779 | Помощь студентам | 0 | 11.06.2010 20:32 |
Оптимизируем return объекта; конструктор копирования | Kn793 | Общие вопросы C/C++ | 2 | 24.04.2010 20:26 |
CSS вёрстка, вставка Google map поверх изображения, фона! | sting | HTML и CSS | 0 | 09.02.2010 22:27 |