138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
|
||||||
1 | ||||||
Конструктор инициализации, конструктор копирования, деструктор31.03.2013, 12:59. Показов 3081. Ответов 9
Метки нет Все метки)
(
Я сделал почти задание по перегрузке операторов. Осталось одно, тоесть три: конструктор инициализации, конструктор копирования, деструктор. Я толком нешарю зачем мне они, и без них все работает, но раз надо так надо. Напишите ети конструкторы к моему коду, а то я просто непомаю зачем их писать, и следовательно как их писать.
Ах да, етот код, ето класс рациональних чисел(обычной дроби), и перегруженые операторы +, -, *, /, < , >... Ну, если ето так важно
0
|
|
31.03.2013, 12:59 | |
Ответы с готовыми решениями:
9
Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор Деструктор и конструктор копирования не работают Конструктор копирования, деструктор при наследовании Конструктор копирования при инициализации |
137 / 131 / 57
Регистрация: 31.01.2012
Сообщений: 435
|
||||||
31.03.2013, 13:19 | 2 | |||||
1
|
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
|
|
31.03.2013, 13:32 [ТС] | 3 |
Черный ворон, о, большое спасибо. А подскажете еще как правильно вызвать деструктор для обьекта?
0
|
15 / 15 / 5
Регистрация: 07.02.2013
Сообщений: 123
|
|
31.03.2013, 14:19 | 4 |
Деструктор вызывать не нужно. Он вызывается автоматически, как и конструктор (это их главные особенности).
Деструктор вызывается когда объект выходит из области видимости. Т.е. завершается работа блока { } в котором находился этот объект. Конструктор по умолчанию (void) вызывается при создании объекта. Classname obj; //вызов конструктора Это обычные функции, но которые выполняются автоматически. Следовательно что в них впихнуть придумайте сами. Конструкторы используют для начальной инициализации или выделение динам. памяти, а деструкторы для освобождения динамически выделенной памяти под поля класса.
1
|
4 / 4 / 3
Регистрация: 30.09.2012
Сообщений: 63
|
|
04.01.2014, 00:33 | 5 |
supra7sky, деструкторы не всегда вызываются автоматически.
0
|
4 / 4 / 3
Регистрация: 30.09.2012
Сообщений: 63
|
||||||||||||||||||||||||||
04.01.2014, 02:14 | 7 | |||||||||||||||||||||||||
supra7sky, Tulosba, пардон, возможно не правильно выразился. Да, действительно, нам нет нужды вызывать деструкторы явным образом
Но в этом случае:
Я понимаю, что велосипед здесь не изобрел - это основы, но боюсь остаться не понятым.
0
|
:)
![]() 4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
04.01.2014, 02:41 | 9 |
sashadereh, вижу, что Вы все понимаете. Однако supra7sky как раз говорил про вызов деструктора при выходе объекта из области видимости. А когда мы работаем с указателем и ручным выделением памяти через new, контроль перекладывается уже на плечи программиста. Но даже в этом случае явного вызова деструктора делать не стоит. Явный вызов может потребоваться только при использовании placement new.
Могу предположить, что Вы хотели сделать акцент на том, что C++ не имеет встроенного сборщика мусора, просто не совсем удачно выразились.
0
|
4 / 4 / 3
Регистрация: 30.09.2012
Сообщений: 63
|
|
04.01.2014, 23:36 | 10 |
Tulosba, именно, о чем и сожалею)
0
|
04.01.2014, 23:36 | |
Помогаю со студенческими работами здесь
10
Конструктор копирования при инициализации в header файле Как написать конструкторы копирования, инициализации и конструктор без аргументов? Можно ли использовать конструктор по умолчанию и конструктор инициализации одновременно? Не могу сделать чтобы класс содержал основной конструктор и конструктор копирования Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |