Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
notes:interface:interface [2015/11/26 16:08]
xin
notes:interface:interface [2024/08/01 10:50] (aktuell)
xin
Zeile 14: Zeile 14:
   operator + ( lhs, rhs is this\ ) as this\;   operator + ( lhs, rhs is this\ ) as this\;
 }; };
 +
  
 int = 0 with { operator $; calc }; int = 0 with { operator $; calc };
Zeile 22: Zeile 23:
  
 Hier könnte man auch mal die Einschränkungen bei IFC zu rate ziehen. Dokumentiert man beispielsweise,​ dass eine Methode zum Beispiel nur 2 oder 3 zurückliefern kann, so kann man das ja im Interface dokumentieren und in einer Debugversion auch zur Laufzeit prüfen lassen. Hier könnte man auch mal die Einschränkungen bei IFC zu rate ziehen. Dokumentiert man beispielsweise,​ dass eine Methode zum Beispiel nur 2 oder 3 zurückliefern kann, so kann man das ja im Interface dokumentieren und in einer Debugversion auch zur Laufzeit prüfen lassen.
 +
 +====== Shadowing ======
 +
 +Eine als Interface deklarierte Funktion sollte nie geshadowed werden.
 +
 +<​code>​
 +class Thing
 +{
 +  public:
 +  int Value;
 +  ​
 +  int const & getValue() const interface; ​ // iface? ifc?
 +};
 +
 +class MutableThing : public Thing
 +{
 +  public:
 +  int       & getValue(); ​  // könnte auch Interface sein, aber die oben beschriebene Interface-Funktion wird nicht ausgeblendet.  ​
 +}
 +</​code>​
 +