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.