Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Auf Objekte in Klasse zugreifen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
22.03.2008, 22:54 Uhr
~totix800
Gast


Hi,

ich versuche mich grad in C++ und bin wieder auf ein paar Anfängerprobleme gestoßen.

Undzwar hab ich folgende Klasse bei einem Programm mit grafischer Oberfläche:


C++:

struct MyWindow : Gtk::Window
{
    MyWindow();
public:
    Gtk::Label            label;
    Gtk::Table            table;
    Gtk::Button              btconnect;
    Gtk::Entry        enmessage;
    Gtk::Entry        enip;
    Gtk::Entry        enport;
    Gtk::Button        btsend;
    Gtk::Label        lbmessages;
    Gtk::CheckButton     checkserver;
    Gtk::Label            lbstatus;
    Gtk::VBox m_VBox;
    Gtk::ScrolledWindow m_ScrolledWindow;
    Gtk::TextView m_TextView;
    Glib::RefPtr<Gtk::TextBuffer> textbuffer;


    std::string message;
    int server_status;


private:
    void attach_widgets_to_table();
    void connect_widgets();
    void button_geklickt();
    void btsend_clicked();
    void checkserver_clicked();
    void server();

};




Diese wird folgendermaßen aufgerufen:


C++:
int main(int argc, char **argv)
{
    Gtk::Main main(argc,argv);
    MyWindow window;
    main.run(window);  

    return 0;
}




Meine Frage ist nun, wie kann ich auf eines der Widgets oder Variablen der Klasse aus einer funktion, die ausserhalb der Klasse is zugreifen.
Dem String message z.B. einen anderen Wert zuordnen?
Ich habs mit window.messanger = "beispiel"; probiert, aber das hat irgendwie nicht geklappt. Wie macht man es denn richtig?

Gruß toti
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.03.2008, 12:24 Uhr
~totix800
Gast


Ok, das war wirklich schlecht. Das Objekt window is nich GLobal und deswegen kann ich nich drauf zugreifen.
Wenn ich MyWindow window aber global definiere compiled das Programm zwar,es stürzt aber ab. Ich schätze das mal als Problem mit GTK ein.
Das Ganze funtkioniert jetzt aber weil ich server einfach zum Teil von MyServer gemacht habe.
Und das Ganze funktioniert jetzt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
23.03.2008, 15:35 Uhr
mischa
Fragender


Hallo,
globale Variablen sollte man so wieso vermeiden und nur dann benutzen wenn es nicht anders geht. In deinem Fall könntest du einfach eine Referenz auf "window" an die Funktionen übergeben die etwas mit den Membern dieser Klasse machen sollen aber das ist ein schlechter Stil. Auf die Variablen einer Klasse sollten nur Methoden dieser Klasse zugreifen und Benutzer der Klasse sollten nur Methoden benutzen um die Variablen dieser Klasse zu verändern.
--
Latein Unterricht ist die spätere Rache der Römer an den Germanen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: