[C++ CLI ] Operator Overloading



  • Hi,
    ich möchte eine Lib in C++ CLI schreiben und die sowohl in C++ CLI Apps wie auch in C# Apps verwenden. In dieser Lib kommen Klassen vor die Operatoren haben und jetzt fängt das Problem an.

    Ich habe nun zwei Möglichkeiten

    1.)

    Vector3^ operator += ( Vector3^ value );
    

    2.)

    Vector3 operator += ( Vector3 value );
    

    Problem bei der ersten Möglichkeit:
    Die Operatoren können in C# ganz normal genutzt werden, allerdings nicht in C++ auf dem Stack erstellt werden und dabei die Operatoren nutzen, sondern nur auf dem Heap.

    Problem bei der zweiten Möglichkeit:
    Ich kann die Klasse in C++ auf dem Stack erstellen und die Operatoren nutzen, aber di Operatoren können in C# gar nicht mehr genutzt werden.

    Ich habe mir mal die Vektoren von Managed DirectX zu Gemüte geführt und erkannt das beides geht: Ich kann die die Klasse in C++ auf dem Stack erstellen und die Operatoren nutzen und die Klasse auch in C# ganz normal nutzen.

    Wenn ich die Lib in C# schreibe, geht es. Da ich aber einiges Optimieren will, wäre mir C++ CLI lieber.


Anmelden zum Antworten