Форум программистов, компьютерный форум 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++ Проблемы с sort() http://www.cyberforum.ru/cpp-beginners/thread37844.html
В #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); }
C++ Генератор случайных чисел в интервале (0;10) Как сгенерировать случайную последовательность целых чисел лежащих в интервале то 0 до 10? Т.е. как задать границы для генерации ПСЧ. подробнее

Показать сообщение отдельно
mporro
256 / 102 / 14
Регистрация: 04.07.2014
Сообщений: 571
15.01.2016, 00:08     Наследуются ли конструкторы и деструкторы?
Цитата Сообщение от Croessmah Посмотреть сообщение
мы находимся в разделе C++ и обсуждаем C++.
Документ, который определяет язык и всё с ним связанное - стандарт языка.
А я не спорю!
Но стандарт интересен для определения операционной семантики языка, а не для попыток определения терминов.
Бессмысленно потрясать договором со словами "ООО<Си и Плюс-Плюс>, именуемый далее поставщик" для определения слова поставщик, да её и утверждений, что любое ООО -- это поставщик.

У наследования объектов есть ясное определение. Если любое сообщение, корректное для типа A, корректно обрабатывается и типом B, то B наследует A. Абстрактный тип выражается классом. Объект -- верное значение абстрактного типа. Наследуется ли конструктор? Нужно узнать, если обрабатывает ли B корректно сообщение для A. Вот здесь нужен стандарт! Это будет вопрос именно C++! Обрабатывает или нет. Если нет -- не наследуется. Если да -- наследуется. Но что там внутри себя стандарт называет наследованием -- деталь, в которую мы вообще не должны лезть.

Если программист унаследует машину от руля, мотивируя тем, что так оно вытекает из стандарта C++, он всё равно получит тикет назад, и денег за работу не увидит, потому что машина рулём не является.


Цитата Сообщение от ct0r Посмотреть сообщение
мы в разделе С++, а не Теория и практика программирования, вот в чем фишка
Никто не рассуждает о JavaScript...
Вопрос прост: если есть класс A и от него унаследован класс B, то верно ли, что для каждого конструктора A, В корректно обрабатывает эквивалентные сообщения?
Выясняется, насколько я понимаю, что нет. Мы должны явно делегировать вызов внутреннему объекту A либо написав эквивалентный конструктор, либо явно обратившись к агрегату A. Значит эти конструкторы не унаследованы.

В каком-нибудь PHP это будет не так. В последних версиях там конструкторы именно наследуются. И в разделе PHP, можно было бы сказать: да, конструкторы наследуются.
 
Текущее время: 18:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru