Erreur du compilateur C3673
'type' : la classe n’a pas de constructeur de copie
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