312 / 272 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
|
||||||
1 | ||||||
деструктор по умолчанию08.05.2012, 12:06. Просмотров 3348. Ответов 9
Метки нет Все метки)
(
Всем привет. Хотелось бы обсудить такой код:
0
|
|
08.05.2012, 12:06 | |
Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор Почему создается виртуальный деструктор A, а в таблице виртуальных функций лежит деструктор B
|
|
бжни
2469 / 1679 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
08.05.2012, 12:14 | 2 |
да
будет, но не в этом случае - здесь утекать нечему, вот если бы в D был член B b - то да, утечка могла бы быть (с учетом, что у них были бы данные, которым утекать) это определяет внутреннюю структуру подобъектов и поведение при множественном наследовании на деструктор (если что) это влиять не будет
0
|
312 / 272 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
|
|
08.05.2012, 12:34 [ТС] | 3 |
Значит код рабочий, спасибо за ответ.
0
|
591 / 529 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
08.05.2012, 18:20 | 4 |
объясните мне почему компилятор не ругается на A a; , пока не добавлен конструктор.
разве поля объекта не инициализируются еще до вызова конструктора?
0
|
Делаю внезапно и красиво
![]() 1310 / 1225 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
08.05.2012, 18:31 | 5 |
В том, что В и С не используются и А создаётся по значению, а не через указатель. Т.е. в коде много лишнего, но он корректен.
Приведи код конструктора Угадай, для чего нужен список инициаллизации в конструкторе и когда эта инициалзация происходит?
0
|
591 / 529 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
08.05.2012, 18:45 | 6 |
видимо я где-то ступил.
теперь все компилится. похоже дефолтный конструктор по умолчанию открытый.
0
|
Делаю внезапно и красиво
![]() 1310 / 1225 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
08.05.2012, 19:23 | 7 |
Так и есть. По умолчанию и конструкторы и дестуктор и присваивания создаются открытыми.
1
|
156 / 156 / 27
Регистрация: 29.03.2012
Сообщений: 418
|
|
08.05.2012, 22:51 | 8 |
Первый раз вижу такой тип наследования.
Объясните, пожалуйста, подробнее как происходит наследование от класса А.
0
|
312 / 272 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
|
|
08.05.2012, 23:05 [ТС] | 9 |
А чего тут объяснять. При перемене слагаемых, сумма не изменится. В этом случае слово public может стоять как до, так и после слова virtual. Класс B,C наследуются виртуально от A. Все переменные класса кладутся в специальную обасть памяти. Но данное виртуальное наследие не имеет смысла, без наследия класса D, т.к. виртуальное наследие, частный случай множественного наследия, в следствии чего в программе не будет не определённости.
1
|
156 / 156 / 27
Регистрация: 29.03.2012
Сообщений: 418
|
|
08.05.2012, 23:30 | 10 |
спасибо.. с перестановкой понятно.
я еще не знал, что такое виртуальное наследование, но вроде разобрался уже.
0
|
08.05.2012, 23:30 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Создать функцию с двумя аргументами, имеющими значение по умолчанию; вывести на экран значения по умолчанию
Деструктор Деструктор Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |