Compartilhar via


Erro C3160 do Compilador

'pointer' : um membro de dados de uma classe gerenciada ou WinRT não pode ter este tipo

Os ponteiros de coleta de lixo internos podem apontar para o interior de uma classe gerenciada ou WinRT. Como eles são mais lentos do que ponteiros de objetos inteiros e exigem manuseio especial por parte do coletor de lixo, você não pode declarar ponteiros gerenciados internamente como membros de uma classe.

A seguinte amostra gera C3160:

// C3160.cpp
// compile with: /clr
ref struct A {
   // cannot create interior pointers inside a class
   interior_ptr<int> pg;   // C3160
   int g;   // OK
   int* pg2;   // OK
};

int main() {
   interior_ptr<int> pg2;   // OK
}