Wiem, że domyślny konstruktor nie jest dziedziczony, jak podano w n3337.Potrzebujemy przykładu pokazującego, że domyślny konstruktor nie jest dziedziczony
I jest przykładem tam:
struct B2 {
B2(int = 13, int = 42);
};
struct D2 : B2 {
using B2::B2;
};
z dość dobre wyjaśnienie:
Zestaw kandydat dziedzicznych konstruktorów w
D2
dlaB2
jest... —B2(int = 13, int = 42) —B2(int = 13) —B2()
I najważniejsze:
Zestaw konstruktorów obecnych w
D2
jest
—D2()
, niejawnie zadeklarowanej konstruktor domyślny, nie odziedziczył
Dla mnie ten przykład nie widać różnicy, w pewnym sensie, że nawet jeśli to bardzo Konstruktor był dziedziczony - jego zachowanie nie różniło się od domyślnie zadeklarowanego konstruktora domyślnego.
Potrzebuję przykładu pokazującego różnicę w sposobie łatwego zrozumienia, powiedzmy, publiczności zaznajomionej z C++ 03, ale pragnącej poznać C++ 11.
[UPDATE]
Wszystkie odpowiedzi (w tym moje własne) są typu "jeśli domyślna c-tor został odziedziczony po czym przykładem może skompilować/nie skompilować".
Wolałbym odpowiedzi, w których wynik (obserwowalne zachowanie) jest inny niż byłoby inaczej.
patrząc na propozycje (np [N2203] (http://www.open-std.org/JTC1/SC22/WG21/docs/papers /2007/n2203.html)), wydaje się, że było to (część?) Uzasadnienie, aby nie dziedziczyć kopiowania/przenoszenia i domyślnych ctors. – dyp