__declspec(hidesbase)

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Schlüsselwörter alphabetisch - Index


Kategorie

Modifizierer, Schlüsselwort-Erweiterungen, Speicherklassenspezifizierer

Syntax

__declspec(hidesbase) declarator

Das Argument hidesbase wird aus Gründen der Kompatibilität zu Object Pascal verwendet. Es ändert die Standard-C++-Semantik für das Überschreiben, damit Object Pascal-Code mit einem Minimum an Modifikationen nach C++ portiert werden kann.

Hinweis: Das Makro HIDESBASE (ist in sysmac.h definiert) kann als Alternative für __declspec(hidesbase) verwendet werden.

Das folgende Codebeispiel zeigt die Wirkung des Makros HIDESBASE:

Methode f ist überschrieben. Mit HIDESBASE wird die Methode f nicht überschrieben.
 class T1 {
 public:
  virtual void f() 
  {
   puts("T1::f");
  }
 };
 
 class T2 : public T1 {
 public:
  void f() 
  {
   puts("T2::f");
  }
 };
 
 // ...
 T1 *t = new T2();
 t->f(); // displays T2::f
 class T1 {
 public:
  virtual void f() 
  {
   puts("T1::f");
  }
 };
 
 class T2 : public T1 {
 public:
  HIDESBASE void f() 
  {
   puts("T2::f");
  }
 };
 
 // ...
 T1 *t = new T2();
 t->f(); // displays T1::f

Siehe auch