Array als Member einer Klasse



  • sulky schrieb:

    Aber wie geht es denn jetzt genau weiter? So wie ich das beim Googeln gefunden habe, wird es ja mega kompliziert, bis das funktioniert.

    Jedenfalls mit cli::array int i[20]; geht es nicht.

    Ein letzter Hinweis:

    cli::array<int>^ i = gcnew cli::array<int>(20);
    

    Die Zielgruppe von C++/CLI kennt sich sowohl mit C++ als auch mit C# bzw. der .NET-Plattform hinreichend gut aus, um sowas nicht für chinesisch zu halten. Außerdem steht das so fast 1:1 in dem ersten Google-Treffer für "cli::array".
    Vielleicht kannst du jetzt eine Entscheidung treffen, ob du dir C++/CLI weiterhin antun willst.

    Bisher fand ich arrays das angenehmste, was es beim Programmieren gibt.

    Arrays gehören in C++ zu dem unangenehmsten, was es gibt. Du hast davon bloß noch nicht viel gemerkt 🙂

    dot schrieb:

    Nein, das heißt nur, dass aktuelle Versionen von MSVC++ keine Projektvorlage für Windows Forms Anwendungen mit C++/CLI haben. Windows Forms mit C++ geht nicht.

    Das ist gut zu hören. Ich hab teilweise den Eindruck gehabt, MS will mit C++ mal wieder einen Embrace&Extend abziehen.



  • Bashar schrieb:

    dot schrieb:

    Nein, das heißt nur, dass aktuelle Versionen von MSVC++ keine Projektvorlage für Windows Forms Anwendungen mit C++/CLI haben. Windows Forms mit C++ geht nicht.

    Das ist gut zu hören. Ich hab teilweise den Eindruck gehabt, MS will mit C++ mal wieder einen Embrace&Extend abziehen.

    Ich denke, das war auch der ursprüngliche Gedanke, der aber wohl relativ bald fallengelassen wurde (VS 2010 hatte nichtmal Syntax Highlighting für C++/CLI). Windows Forms sind aber ja eh sowieso schon lang wieder veraltet und im Moment wollen sie wohl eher WinRT pushen, das dann auch in C++ vernünftig verwendbar ist. Irgendwo gabs mittlerweile sogar einen MSDN Artikel, wo ganz offiziell stand, dass C++/CLI nur für Interop zu gebrauchen ist und von jeder anderen Verwendung, insbesondere dem Basteln von GUIs, abgeraten wird. Ich find ihn nur nimmer...



  • Gleich geb ichs auf.

    Schon mehrfach habe ich für den Eigengebrauch kleine Windows-Form-Anwendungen geschrieben und habe dabei nicht einmal bemerkt, dass ich nicht in c++ schreibe.

    Einen Versuch noch:

    Gleich zu beginn der Klasse schrieb ich:

    cli::array<int>^ i = gcnew cli::array<int>(20);

    war das so gemeint?

    Ich erhielt folgende Fehlermeldung error C3845.
    'member': only static data members can be initialized inside a ref class or value type



  • Member musst du natürlich im Konstruktor initialisieren.


Anmelden zum Antworten