Partager via


Erreur du compilateur C3073

'type' : la classe ref n’a pas de constructeur de copie défini par l’utilisateur

Dans une compilation /clr (Compilation Common Language Runtime), le compilateur ne génère pas de constructeur de copie pour un type de référence. Dans une compilation /clr , vous devez définir votre propre constructeur de copie pour un type de référence si vous attendez qu’une instance du type soit copiée.

Pour plus d’informations, consultez la sémantique de pile C++ pour les types de référence.

Exemple

L’exemple suivant génère l’erreur 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
}