implementieren Wie kann ich diese fließend Schnittstelle in C implementieren ++:Wie fließend Schnittstelle mit einer Basisklasse, in C++
class Base {
public:
Base& add(int x) {
return *this;
}
}
class Derived : public Base {
public:
Derived& minus(int x) {
return *this;
}
}
Derived d;
d.add(1).minus(2).add(3).minus(4);
Aktuelle Code funktioniert nicht, da Basisklasse nichts über abgeleitete Klasse wissen, usw. Ich wäre sehr dankbar für einen Hinweis/Vorschlag.
Warum würden Sie das tun? Stellt die Basis eine echt polymorphe Basis dar oder nicht - wenn dies nicht eine LSP-Verletzung ist, ist das wahrscheinlich der Grund, warum es schwierig ist. – Stewart
@Stewart - es handelt sich nicht um eine Verletzung von LSP, es sei denn, eine abgeleitete Funktion als Basis für eine Funktion, die eine Basis erwartet, wurde nicht ordnungsgemäß ausgeführt. Das Hinzufügen eines neuen Verhaltens zu Unterklassen ist vollkommen in Ordnung und wird niemals den LSP verletzen. Es ist nur möglich, gegen LSP zu verstoßen, indem bestehendes Verhalten in Base überschrieben wird, sodass es der Schnittstelle nicht länger gehorcht. –