Hej.
Jag har en basklass A, en nedärvd klass B, och ytterligare en klass C som ärver av B.
Skillnaden mellan klass B och C är ytterst liten.
I basklassen finns en copy-constructor:
A(A & a): value(a.value){}
Jag vill kunna kopiera mellan B och C:
B first;
C second;
B = C;
eller
B first;
C second(first);
Som det är nu får jag felet:
"no matching function for call to C::C(B &)"
Går det att lösa, eller måste jag ändra på arvets struktur. Blir det lättare om både B och C ärver direkt från A?
Exempel på hur jag menar:
I Main.cpp
#include "b.h"
#include "c.h"
int main()
{
B first;
C second;
first = second;
return 0;
}
I b.h:
#include "A.h"
class B : public A {};
I c.h:
#include "B.h"
class C : public B {};