wohin gehört die Declaration von struct ?



  • hallo,

    ok

    Matthias



  • Hallo nochmal,

    eine Frage noch ... falls ich wiedermal ne Frage haben sollte... was darf ich Euch denn Fragen ?

    Matthias



  • Bevor du hier ne Frage reinstellst solltest du dich erstmal einen Monat bemühen die Antwort selbst rauszufinden.



  • hmm,

    also ist das nur ein Leseforum .. ok 😉

    Also Ehrlich, ich hab doch nun eine konkrete Frage gestellt. Warum ich keine Antwort erwarten darf weiss ich nicht !

    Na egal

    Matthias



  • ref class zugriff_3//: public klassen1::Form1
            {
            public:
                void changeTextBox_3()
                    {
                    klassen1::Form1::tbText = "Neuer Text";
                    };
            };
    

    Ich glaube da hab ich irgendwas mit den Zugriffen noch nicht verstanden und wäre Euch sehr dankbar weenn ihr mir das an diesem einfachen beispiel erklären könntet.

    Du kannst keine Member-Variable verändern oder irgendeinen MemberFunktion/Property aufrufen, bevor Du nicht eine Instanz davon erstellt hast und Du diese Instanz auch kennst!

    Konkreter kann die Antwort auf Deine Frage nicht sein.



  • Hallo,

    danke Für die Antwort, aber Du hast meinen Thread nicht gelesen.
    Lad Dir bitte nochmal dieses Projekt herunter.
    Darin sind alle Fragen gestellt !

    http://www.starflight-virtual.de/c++/klassen1.rar

    Danke
    Matthias



  • Vllt. erinnerst Du Dich, das die meisten Beiträge in diesem Thread von mir stammen. Du liest die Antworten nicht.



  • Hallo,

    bin grad von Arbeit gekommen.
    Hab gestern abend noch ein deutsches Tut über klassen und vererbung gelesen. Das Tut hab ich verstanden !
    Habs mit Dev C++ ausprobiert !

    Jedoch bekomm ich das einfach nicht in Visual Studio gebacken, sorry aber irgendwie ist das hier anders.

    Ich habe also versucht eine Classe "test" in eine extra Datei gepackt und versuchte nun auf eine Funktion in dieser klasse zuzugreifen von der Main Class, also der Classe Form1.

    Das Problem ist das ich irgendwie die #includes anscheinend nicht richtig setze.
    Ich lad jetzt das letze mal dieses neue Projekt hoch.
    Könntest Du Dir bitte die Mühe machen und dieses eine Projekt mal so ändern das ich die Funktion "test_Change_Form1_Color" aus dem button1_ am liebsten mit extra Namespace oder dem gleichen, das soll laut irgendeinem Tut das ich mal gelesen habe so wie es in Proj. ist auch gehen.
    Geht aber nicht.

    Kannst Du mir den Gefallen tun ?

    Ich hab sogar in jeder Datei wo ich nicht genau weiss was richtig/falsch ist
    "/// ???" reingemacht, damit du nicht zu viel suchen must. Wenn wir jetzt wieder anfangen uns das Problem gegenseitig zu erklären brauchen wir in diesem Thread oder in einem neuen noch x seiten.

    Also darum die bitte hier
    www.starflight-virtual.de/c++/WA_01.rar
    nur einmal reinzuschauen . dann hab ich ne Vorlage und dann komm ich klar.

    Danke
    Matthias



  • Schau Dir noch mal das Kapitel an, das sich um Instanzierung der Klasse dreht.

    [/cpp]Form1::BackColor = System::Drawing::Color::Blue;[cpp]

    Welche der Instanzen willst Du hier die Farbe zuweisen ?



  • http://www.rothmichael.de/cpp/STF-DIR/WA_01.zip

    Bitte schön. Es wird Dir nichts nützen. Dein Projekt zeigt nur, das Du von dem was Du (ggf.) liest nur wenig verstehst bzw. nicht genug verinnerlichst.



  • Hallo,

    ich danke Dir !!

    "ref class Form1;"

    Werd mir das heute nochmal raussuchen und näheres dazu lesen, aber ich glaube das ist so eine Art prototype der Classe form1, also damit die Classe bekannt ist in der datei test.h.
    Ausserdem auch der parameter der test_change_color... funktion.

    Allerdings steht davon nichts in irgendwelchen Tutorials !
    Ich finde hier immer nur welche in denen es um C++ geht, auch um CLI, aber dort wird nicht darauf eingegangen wie das ganze in VISUAL STUDIO aussieht. In Dev C++ oder VC++ 6 sieht das ganze nämlich ganz anders as.
    Wie soll man das denn dann lernen ohne einen netten Helfer wie Dich ?

    Ich danke Dir !!!
    Bei weiteren Fragen werde ich jetzt einen neuen Thread aufmachen.



  • Ähm,

    was hat standard C++ aussehen mit der IDE zu tun ?
    Definition deklaration forwarddeklaration namespace und instanziieren sind sehen bei jedem Compiler identisch aus.

    In den Tutorials steht davon nicht viel, weil es totale Grundlagen sind und es dafür eigene tutorials geben wird.
    Das ref class Form1 ist eine forwarddeklaration und war nötig um die verschachtelung aufzulösen die Du mit Deinem Beispiel gebaut hast.



  • Hallo,

    in VC++ 6 zum Beispiel landet man, wenn man ein button_onclick() ereignis erstellt, nicht in der Form1.h sondern in der Form1.cpp !!
    Das ist schon ein großer unterschied !

    Es lag ja nicht nur an dem Aufruf:

    void test_Change_Form1_Color(Form1 ^ form); !

    Hatte dort genauso eine stink normal funktion nehmen können,
    sagen wir mal void test(){ MessageBox("Hallo") }; <-- Syntaxfehler, ich weiss !!

    Es ging ja darum in dem button1_onclick ereignis auf die CLASSE TEST zuzugreifen ! Das hab ich ja nicht hinbekommen !

    Matthias



  • Die Fehler die Du da machst sind aber nicht wegen der Art die der Wizzard verwendet um COde einzufügen, das sind einfach wissenslücken in den Grundlagen.

    IMHO ist es ein sehr sehr kleiner unterschied ob man in der Form1.h oder Form1.cpp landet. Es hindert Dich nämlich niemand daran den Code nach definition und deklaration zu trennen. Auch werden dadurch die C++ Regeln nicht neu definiert.



  • STF-DIR schrieb:

    in VC++ 6 zum Beispiel landet man, wenn man ein button_onclick() ereignis erstellt, nicht in der Form1.h sondern in der Form1.cpp !!
    Das ist schon ein großer unterschied !

    In VC8 ist das genauso!!!

    Du bringst mal wieder MFC (native) und .NET durcheinander!!!



  • Was ??

    Wenn ich in VC ++ 6 einen Button auf die Form ziehe und dann doppelt drauf klicke, dann lande ich ganz sicher in der form1.cpp und nicht in der form1.h.
    Ja, das ist MFC und nicht .NET aber das hat doch mit dieser Tatsache nichts zu tun !

    Es gibt nunmal derzeit noch keine Bücher oder Anfänger Tutorials in deutsch zu VS 2005 !
    Das ist auch ne Tatsache, jedenfalls hab ich nohc keine gefunden.
    Vielleicht hast Du ja welche im petto ?

    Matthias





  • Jetzt reicht es aber,

    was denkst Du wer Du bist und was ich hier mache ?
    Nicht jeder programmiert in C++ ( allgemein ) schon ne Ewigkeit, nicht jeder begreift vielleicht alles so schnell wie Du, nicht jeder kann alles von Anfang an !

    Was beschwerst Du Dich denn wenn ich hier mal ne Grundlagenfrage stelle ?
    Wenn Du nur rummeckern willst, dann spar Dir deine Klugscheißerantworten !

    Ich versuche hier etwas zu lernen und brauche sicher keinen der hier ständig nur am meckern ist und mir sagt das ich mit den Grundlagen beginnen soll. Das weiss ich auch und das versuche ich ja auch. Das Tutorial was ich hier habe behandelt die Grundlagen ! Es sieht nur alles ein wenig anders aus als in dem niegelnagelneuen VS 2005 ! Damit hab ich eben meine Probleme. Wenn Du das nicht verstehen kannst, dann spar Dir die Antworten.
    Die Antworten die Du hier schreibst helfen mir kein bischen weiter, deswegen ist auch der Thread hier soewig lang, weil ich hier jedesmal von neuen das gleiche schreibe und einfach keine Antwort bekomme obwohl das doch so einfach gewesen wäre!
    Siehe die Antwort von Knuddelbär, der versteht das wenigstens ein bischen.

    So, zu den Büchern ... die drehen sich nicht um VS 2005 sondern um VC 6. Die Bücher für das NEUE VS 2005 sind nämlich noch nicht auf dem Markt.

    Ich will jetzt nicht erst C++ lernen um dann wieder von vorne mit VS 2005 anzufangen ! Ich will das eben gleich mit der IDE von VS 2005 lernen, die war teuer genug und ich hab sie nunmal !
    ( das um deiner nächsten Antwort vorzugreifen ! )

    @Knuddelbär
    So, jetzt bin ich gerade dabei mir das von Dir anzuschauen und grübele gerade warum es in der Form1.h heir keinen Aufruf der funktion test_change_color gibt ???

    #pragma endregion
    	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e);
    		};
    }
    

    Die funktion ist doch leer. Wies macht der compiler da überhaupt irgendwas ???

    Hmm...

    Matthias



  • Hallo "Knuddel"...

    habs gerade gefunden...

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e);
    

    ist ja nur die Deklaration der funktion . Die Definition steht ja in der Form1.cpp.

    OK...Jetzt versuche ich mal rauszufinden warum das so ist und ob das so sein muss ?

    Matthias

    Ps.: So stelle ichmir das vor, so kann man lernen und dazu ist ja ein Forum da



  • Es ist Dein Problem wenn Du die einzigen leute die Dir helfen wollen anmachst.

    Lern verdammt noch mal die Grundlagen , danach kannst Du hier wieder aufkreuzen.

    Ende schluss aus, such Dir nen anderen deppen der Dir hilft. Deine Probleme bestehen nich darin das die Antworten schlecht sind sondern das Du einfach >> ZU FAUL << bist die Grundlagen zu lernen. Der Weg ist Dir zu mühsig.

    C++ ist keine Sprache in der es nur einen Weg zur Lösung gibt den man vorgekaut bekommt.

    So, jetzt bin ich gerade dabei mir das von Dir anzuschauen und grübele gerade warum es in der Form1.h heir keinen Aufruf der funktion test_change_color gibt ???

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e);
    

    Die funktion ist doch leer. Wies macht der compiler da überhaupt irgendwas ???

    Ich wüsste nicht was ich hier noch nach sehr vielen und langen Threads erklären sollte. Ich les Dir kein C++ Buch vor.

    Du bist ja sogar so oberflächlich, das Du nicht mal mitbekommst das Du in ein und dem gleichen Beitrag die gleiche Person runtermachst und dann um hilfe bittest.

    Fakt:

    Dir wurde mehrfach gesagt das Du Grundlagen lernen sollst. Grundlagen lassen sich OHNE jeglichen COmpiler lernen (auch wenn es mit einfacher ist). Ich verstehe das Problem mit dem Compiler nicht.

    Dann wurde Dir viele Links zu Quellen gegeben, sehr ausführliche Antworten gegeben und trotzdem kränkelst Du an den absoluten Basics rum.


Anmelden zum Antworten