2014-03-19 14 views

Antwort

6

Verwenden kovariante CV-Qualifikationsmerkmale für primitive Typen in C++?

NO

§ 10.3.7 Virtuelle Funktionen

Der Rückgabetyp einer übergeordneten Funktion ist entweder identisch mit dem Rückgabetyp der überschriebenen Funktion oder covariant mit den Klassen sein die Funktionen. Wenn eine Funktion D::f eine Funktion überschreibt B::f, die Rückgabetypen der Funktionen sind covariant, wenn sie folgende Kriterien erfüllen:

  • beide sind Zeiger auf Klassen, beide sind lvalue Verweise auf Klassen oder beide R-Wert Verweise auf Klassen
  • die Klasse in dem Rückgabetyp B::f sind die gleiche Klasse wie die Klasse im Rückgabetyp D::f, oder sind eine eindeutige und leicht zugängliche direkte oder indirekte Basisklasse der Klasse in dem Rückgabetyp D::f
  • beiden Zeiger oder Referenzen haben die gleiche cv-Qualifikation und den Klassentyp in dem Rückgabetyp D::f
+0

Gibt es einen Grund für diese nicht gültig zu sein? Oder ist das nur ein Versehen? – Sjoerd

Verwandte Themen