Форум программистов, компьютерный форум CyberForum.ru

Наследуются ли конструкторы и деструкторы? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Отсылка межпроцессовых сообщений http://www.cyberforum.ru/cpp-beginners/thread37857.html
Есть два процесса основной и дочерний, как дочернему отправить сообщение, точнее даже вопрос не как отправить, а как получить, вот отправлять пытаюсь так STARTUPINFO sic; ZeroMemory (&sic, sizeof(sic)); sic.cb = sizeof(sic); LPCSTR t = "hi"; LPCSTR name = "Slave"; UINT msg = RegisterWindowMessage(t); ...
C++ Класс TPlane, описывающий плоскость в пространстве Собственно само задание: переписать программу, используя новые знания о классах и перезагрузке операций. Использовать динамическое выделение памяти под создаваемый объект. Класс TPlane, описывающий плоскость в пространстве, проходящую через 3 точки. Есть возможность вычислять положение точки на плоскости по заданным 2-м координатам, пересечение плоскости с прямой, а так же вычислять... http://www.cyberforum.ru/cpp-beginners/thread37856.html
Полиморфизм своими словами C++
Дайте определения полиморфизма своими слова. А так же примерчик, который ярко выражает полиморфизм. Спасибо.
c++ C++
Что значит строки v_arr(arr, N); w_arr(arr, N);
C++ Вывести на экран "уникальные" элементы массива http://www.cyberforum.ru/cpp-beginners/thread37848.html
1 Есть массив, вывести на экран все элементы, которые встречаются хотя-бы дважды 2 Вывести на экран "уникальные" элементы. ЗЫ использовать только <iostream>
C++ Проблемы с sort() В #include "stdafx.h" #include <iostream> #include <ctime> #include <algorithm> using namespace std; void out(int *a,int n,int k); void vin(int *a,int n); void copt(int *a,int n,int k); bool my (int i,int j) { return (i<j); } подробнее

Показать сообщение отдельно
Operok
139 / 137 / 40
Регистрация: 15.02.2015
Сообщений: 418
Завершенные тесты: 2
14.01.2016, 10:51     Наследуются ли конструкторы и деструкторы?
Поведение конструкторов и деструкторов при наследовании в отличие от методов больше напоминают инкапсуляцию (объекта базового класса в производный, именно объекта, а не указателя), что и не мудрено, ведь базовый класс целиком включается в производный и предоставляет ему свой интерфейс (опустим подробности).
Допустим у нас есть дерево (вырожденное в список) классов "1...N", теперь мы хотим создать объект класса "N" (вызываем его конструктор). Начинает разворачиваться рекурсия: конструктор "N" вызывает (прежде чем сам выполнится) конструктор N-1 (если явно не указывать, какой, то "по умолчанию"), этот в свою очередь - конструктор N-2 и т.д. При инкапсуляции, конструктор инициализирует свои данные, вызывая "конструкторы по умолчанию" или иные, при явном указании. С деструктором похожая ситуация. При уничтожении объекта класса "N", сначала выполняется тело его деструктора, затем деструктор "N-1" и т.д. В случае с полиморфизмом и виртуальными деструкторами компилятор не знает, объект какого класса надо удалять, поэтому "программа" смотрит в таблицу виртуальных методов, находит там деструктор некого класса "N-M" (M < N) и вызывает его, а тот все остальные до "самого базового" класса.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru