Wie im folgenden Beispiel, was ist erlaubt, wie und warum?Was regelt das C++ in Bezug auf kovariante Rückgabetypen?
class Shape {
public:
//...
virtual Shape *clone() const = 0; // Prototype
//...
};
class Circle : public Shape {
public:
Circle *clone() const;
//...
};
Was genau ist die Frage? Wenn Sie den Begriff * covariant * kennen, wissen Sie wahrscheinlich, was es bedeutet. Die Antwort lautet also: Kovariante Rückgabetypen sind erlaubt. Das ist es. – AnT
Nur ein Link für Leute, die nicht mit dem kovarianten Rückgabetyp vertraut sind: http://en.wikipedia.org/wiki/Covariant_return_type –
Regel # 1 der kovarianten Rückgabe - VC6 nicht verwenden. –