E2069 Unzulässige Verwendung eines Zeigers auf ein Klassenelement (C++)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Compiler-Fehler und -Warnungen (C++) - Index

Zeiger auf Klassenelemente können nur als Argumente an Funktionen übergeben oder mit den folgenden Operatoren verwendet werden:

  • Zuweisungsoperatoren
  • Vergleichsoperatoren
  • .*
  • —>*
  • ?: konditionaler (dreiteiliger) Operator
  • && Operator logisches UND
  • || Operator logisches ODER

Der Compiler hat einen Elementzeiger gefunden, der mit einem anderen Operator verwendet wurde.

Um einen Zeiger auf eine Elementfunktion aufzurufen, muss eine Instanz der Klasse bereitgestellt werden.

Zum Beispiel:



 class A {
 public:
    myex();
 };
 typedef int (A::*Amfptr)();
 myex()
 {
    Amfptr mmyex = &A::myex;
    return (*mmyex)();  // Fehler
 }



Folgender Code wird compiliert:



 class A {
 public:
    myex();
 };
 typedef int (A::*Amfptr)();
 foo()
 {
    A a;
    Amfptr mmyex = &A::myex;
    return (a.*mmyex)();
 }