Возможно ли из объекта базового класса создать объект наследника без явного определения конструктора?
Задача состоит в том, чтобы скопировать данные из базового объекта в объект наследник, возможно ли это сделать без явного определения конструктора наследника из объекта базового класса?
#include <iostream>
class A {
public:
int a;
};
class B: public A {
public:
explicit B(A const& a): A(a) {}
int b;
};
class C: public B {
public:
explicit C(B const& b): B(b) {}
int c;
};
int main()
{
A a;
a.a = 10;
B b(a);
b.b = 100;
C c(b);
c.c = 1000;
std::cout<<c.a<<" "<<c.b<<" "<<c.c<<std::endl;
return 0;
}