|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.03.2015, 17:01 | #1 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
вредный конструктор копировщик
подскажите пожалуйста почему когда я активирую
Nasa(Nasa & basa) {} (снимаю коментарий), то получаю какие-то левые значения в строке printf("****** %d",V.fada());. должен получить 122 Код:
|
17.03.2015, 21:25 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
а вы в конструкторе копирования, копирование не пробовали написать?
вы ничего не копируете. вот и получаете мусор. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
18.03.2015, 12:57 | #3 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
|
18.03.2015, 15:21 | #4 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
компилятор это делает в том случае если конструктор копирования не прописан явно. как только коммент снят компилятор не участвует в кострукторе копирования.
|
18.03.2015, 17:25 | #5 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
значит я сам себе нагадил в тапки.
______________________ исче такой вопрос. переменная х класса в области динамической памяти. B - обьект. в книге написанно , что если выполнить B=B; то данные должны стереться. но они по прежнему не меняются. Код:
Последний раз редактировалось RAFA91; 18.03.2015 в 17:28. |
18.03.2015, 17:31 | #6 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
.....................
|
19.03.2015, 17:52 | #7 |
Форумчанин
Регистрация: 24.04.2012
Сообщений: 300
|
С чего бы им стираться? В книге наверно и пример другой. x будет очищена в данном случае только при вызове деструктора Nasa, а он не будет вызван до завершения программы в вашем случае.
Помог? Оставляем отзыв =)
|
20.03.2015, 15:00 | #8 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
взникла проблема с выполнением строки K=A++;
при выполнении printf("\n__________ %d\n",K.gasaaa()); получаю левые числа вместо 6. чувствую что проблема в Fasa operator ++ (int ff) или в копировщике. Подскажите пожалуйста где я накосячил ?? ___________________________________ _____________ Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
конструктор С++ | zla9_kolu4ka | Общие вопросы C/C++ | 2 | 07.03.2014 00:22 |
Вредный DBChart | Greekus | Помощь студентам | 1 | 05.09.2011 10:44 |
С++ (конструктор, деструктор, копирующий конструктор) | Jane-sad | Помощь студентам | 2 | 01.10.2010 10:01 |
конструктор | An123 | Помощь студентам | 1 | 17.01.2010 17:14 |
Конструктор | PilGrim | Общие вопросы C/C++ | 0 | 16.01.2009 10:21 |