Ich implemeting diesen Diamanten Vererbung:Vererbung falscher Aufruf von Konstrukteuren
class Object {
private:
int id; string name;
public:
Object(){};
Object(int i, string n){name = n; id = i;};
};
class Button: virtual public Object {
private:
string type1;
int x_coord, y_coord;
public:
Button():Object(){};
Button(int i, string n, string ty, int x, int y):Object(i, n){
type = ty;
x_coord = x;
y_coord = y;};
};
class Action: virtual public Object {
private:
string type2;
public:
Action():Object(){};
Action(int i, string n, string t):Object(i, n){ type2 = t;};
};
class ActionButton: public Button, public Action{
private:
bool active;
public:
ActionButton():Buton(), Action(){};
ActionButton(int i, string n, string t1, int x, int y, string t2, bool a):
Button(i, n, t1, x, y), Action(i, n, t2) {active = a;};
};
Alles funktioniert gut über die ersten drei Klassen, aber wenn ich versuche, ein Objekt des Typs ActionButton zu erstellen, anstatt den Konstruktor des Aufrufs Mit den Parametern, die ich geschrieben habe, ruft es den Standard aus der Klasse Object auf. Jedes ButtonAction-Objekt hat also einen leeren String und einen zufälligen Wert. Was ist falsch mit meinem Code und wie kann ich es richtig funktionieren lassen?
Ca Sie zeigen, wie Sie die 'ActionButton's erstellen? – NathanOliver
ActiveButton AB (1, "button", "square", 40, 40, "delete", true); – SuperChit