Problem mit operator=



  • Hallo,
    Ich habe folgende Klasse (gekürzt):

    public ref struct Farbe {
    	Color color;
    	__int8 Addition;
    }
    

    und folgenden Code ...

    Farbe F1, F2;
    //...
    F1 = F2;
    

    ... der folgenden Fehler ergibt:

    error C2582: Die Funktion 'operator =' ist in 'Farbe' nicht verfügbar

    Normalerweise würde ja einfach Bitweise kopiert werden. Wenn ich den Operator= manuell definiere, also:

    void operator=(Farbe F) {
        this->color = F.color;
        this->Addition = F.Addition;
    }
    

    behauptet der Compiler, es sei kein passender Konstruktor vorhanden.

    Was mache ich falsch?



  • Hallo,

    was schonmal ungünstig ist, du mischt managed und unmanaged Code. Warum musst du __int8 benutzen und kein Byte? Denke mal dass wird auch der Grund sein warum er für die Struktur den Zuweisungoperator nicht automatisch hinbekommt.



  • Die Sachlage bessert sich nicht, wenn ich alles durch die managed-Variante ersetze...



  • wie wärs mit:

    value class Farbe
    {
       Color color;
       // ...
    };
    


  • Danke, das wars...


Log in to reply