Yahoo Clever wird am 4. Mai 2021 (Eastern Time, Zeitzone US-Ostküste) eingestellt. Ab dem 20. April 2021 (Eastern Time) ist die Website von Yahoo Clever nur noch im reinen Lesemodus verfügbar. Andere Yahoo Produkte oder Dienste oder Ihr Yahoo Account sind von diesen Änderungen nicht betroffen. Auf dieser Hilfeseite finden Sie weitere Informationen zur Einstellung von Yahoo Clever und dazu, wie Sie Ihre Daten herunterladen.

?
Lv 4
? fragte in Computer & InternetProgrammierung & Design · vor 1 Jahrzehnt

wie deklariert man eine eigene klasse bei microsoft viusal c++ express in einer windows forms (CLR)?

hi,

ich habe mit viusal c++ express ein windows forms projekt erstellt und möchte dort eine selbst deklarierte klasse benutzen, die im gesamten projekt verwendbar sein soll. ich weiß aber nicht recht wohin.

ich besitzte neben anderen komischen dateien "projektname.cpp" (main) und "Form1.h". "Form1.h" ist wohl für das gui und in dessem code möchte ich eine klasse aufrufen (klick auf einem button). wo muss ich jetzt die klasse hinschreiben. wenn ich sie oben in den Formscode schreibe hagelt es errors, wenn ich sie in die main.cpp tue kann ich es fehlerfrei compilieren, aber wenn ich sie benutzen will, wird sie nicht gefunden.

ich merke gerade, dass überhaupt keine variablen gefunden werden, die ich am anfang von main.cpp geklariere.

wo muss das denn hin ?

ich glaube zwar nicht, dass es hilft, weil es auch mit std variablen nicht funzt, aber ich nenne trotzdem mal die klasse:

class knoty

{

public:

knoty(string wert);

string informy = "";

knoty *rechty = 0;

knoty *linky = 0;

};

knoty::knoty(string wert)

{

informy = wert;

}

Update:

gleiches problem mit funktionen, wo müssen die definiert werden im code ?

Update 2:

@ Paul C

die knoty.cpp müsste man dann auch noch irgendwo includen, aber das macht man nur der übersichthalber. es ist ja egal, ob ich den code direkt reinschreibe oder ihn in eine datei schreibe und die dann per include da rein geschrieben wird. ich habe es aber probiert und es geht nicht.

wenn ich ganz oben in den code eine einfache integer variable global deklariere

int foo = 0;

oder

int *foo = new int;

und diese dann irgendwo benutzen will kommt immer

Fehler 2 error C2065: 'foo': nichtdeklarierter Bezeichner

es liegt also nicht nur an klassen, ich weiß allgemein nicht wo ich allgemeine codeteile reinschreiben soll.

1 Antwort

Bewertung
  • vor 1 Jahrzehnt
    Beste Antwort

    Unter .NET programmier ich eigentlich nur C#, deshalb kann ich dir das nicht 100%-ig beantworten, aber in klassischem C++ ist es so, dass du eine knoty.h Header-Datei erstellst, in der die Klasse definiert wird, also der Klassenrumpf wie oben

    class knoty

    {

    public:

    knoty(string wert);

    string informy = "";

    knoty *rechty = 0;

    knoty *linky = 0;

    };

    (obwohl nach klassischem C++ die Zuweisung in der Klassendefinition afaik nicht möglich ist.) und dann erstellst du eine knoty.cpp Quelltextdatei, in der alle Funktionen definiert werden, also in deinem Fall z.B.

    knoty::knoty(string wert)

    {

    informy = wert;

    }

    Um die Klasse jetzt z.B. in deiner main.cpp nutzen zu können fügst du am Anfang der Datei ein

    #include "knoty.h"

    ein und du solltest die Klasse nutzen können.

    Hoffe ich konnte helfen.

    Cheers, Paul

Haben Sie noch Fragen? Jetzt beantworten lassen.