Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Отсылка межпроцессовых сообщений http://www.cyberforum.ru/cpp-beginners/thread37857.html
Есть два процесса основной и дочерний, как дочернему отправить сообщение, точнее даже вопрос не как отправить, а как получить, вот отправлять пытаюсь так STARTUPINFO sic; ZeroMemory...
C++ Класс TPlane, описывающий плоскость в пространстве Собственно само задание: переписать программу, используя новые знания о классах и перезагрузке операций. Использовать динамическое выделение памяти под создаваемый объект. Класс TPlane,... 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);... подробнее

Показать сообщение отдельно
kzru_hunter
1097 / 766 / 58
Регистрация: 01.02.2011
Сообщений: 1,779
Записей в блоге: 1
13.01.2016, 19:20
Цитата Сообщение от Croessmah Посмотреть сообщение
http://rextester.com/KKWLK56056
Да, странно как-то это. Но в Visual Studio 2013 без ошибок компилируется (появляется только ошибка intellisense).
C++ Builder 6 не хочет компилить, багнутый, левую ошибку показывает. Но начинает компилить только, когда вручную определяешь конструктор по умолчанию A::A().

xecu91
То что у тебя вначале написано - это не из-за наследования. У каждого класса должны быть свои конструкторы. Если ни один не определён, то генерируется конструктор по умолчанию, в код которого добавляется неявный вызов конструктора по умолчанию базового класса. Но для конструктора по умолчания базового класса стоит модификатор explicit, который требует чтобы его вызывали явно. Поэтому и ошибка. И никак не из-за наследования.

А то что в C++11 добавили так называемый constructor inheritance, то я бы эту возможность назвал так - constructor adoption (заимствование конструктора). И у меня почему-то код не компилится в VS 2013 (вместо конструктора A::A пытается вызвать копирующий конструктор B:B(const B&), но не может т.к. не может преобразовать int в B), хотя rextester компилит.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru