Partager via


Erreur du compilateur C3673

'type' : la classe n’a pas de constructeur de copie

Remarques

Un constructeur défini par l’utilisateur est nécessaire pour copier des objets de types ref CLR. Pour plus d’informations, consultez la sémantique de pile C++ pour les types de référence.

Exemples

L’exemple suivant génère l’erreur C3673.

// C3673.cpp
// compile with: /clr
public ref struct R {
public:
   R() {}
   // Uncomment the following line to resolve.
   // R(R% p) {}
};

int main() {
   R r;
   R s = r;   // C3673
}

L’exemple suivant génère l’erreur C3673.

// C3673_b.cpp
// compile with: /clr /c
// C3673 expected
using namespace System;
[AttributeUsage(AttributeTargets::Class)]
ref class MyAttr : public Attribute {
public:
   MyAttr() {}
   // Uncomment the following line to resolve.
   // MyAttr(int i) {}
   property int Priority;
   property int Version;
};

[MyAttr]
ref class ClassA {};   // OK, no arguments

[MyAttr(Priority = 1)]
ref class ClassB {};   // OK, named argument

[MyAttr(123)]
ref class ClassC {};   // Positional argument

[MyAttr(123, Version = 1)]
ref class ClassD {};   // Positional and named