Compartir a través de


Error del compilador C3073

"type": la clase ref no tiene un constructor de copia definido por el usuario

En una compilación /clr (Compilación de Common Language Runtime), el compilador no generará un constructor de copia para un tipo de referencia. En cualquier compilación /clr, debe definir su propio constructor de copia para un tipo de referencia si espera que se copie una instancia del tipo.

Para obtener más información, vea Semántica de pila de C++ para tipos de referencia.

Ejemplo

El ejemplo siguiente genera el error C3073.

// C3073.cpp
// compile with: /clr
ref class R {
public:
   R(int) {}
};

ref class S {
public:
   S(int) {}
   S(const S %rhs) {}   // copy constructor
};

void f(R) {}
void f2(S) {}
void f3(R%){}

int main() {
   R r(1);
   f(r);   // C3073
   f3(r);   // OK

   S s(1);
   f2(s);   // OK
}