Sdílet prostřednictvím


novtable

Konkrétní společnosti Microsoft

Jedná se __declspec doplňkového atributu.

Tato forma __declspec lze použít pro všechny deklarace třídy, ale byste měli použít čistý rozhraní tříd, tříd, které budou vytvořeny nikdy samostatně.__declspec z generování kódu vfptr v constructor(s) a destruktoru třídy Inicializace kompilátoru se zastaví.V mnoha případech budou odebrány pouze odkazy na virtuální tabulka přidružené třídy a tedy vytvořeném propojovacím jej odeberete.Pomocí tohoto formuláře z __declspec může mít za následek významné snížení velikosti kódu.

Při pokusu o vytvoření instance třídy s novtable a potom k člen třídy, obdržíte chybu narušení přístupu (AV).

Příklad

// novtable.cpp
#include <stdio.h>

struct __declspec(novtable) X {
   virtual void mf();
};

struct Y : public X {
   void mf() {
      printf_s("In Y\n");
   }
};

int main() {
   // X *pX = new X();
   // pX->mf();   // Causes a runtime access violation.

   Y *pY = new Y();
   pY->mf();
}
  

Viz také

Referenční dokumentace

__declspec

Klíčových slov jazyka C++