Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Klassenzugriffsfragen

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
09.03.2006, 16:02 Uhr
Argonox



Hi an alle,

Sorry, für die Frage, aber ich hab ein kleines Verständnissproblem.
Hab mich jetzt durch 3 C++ Onlinekompendiums gemausert, aber bin daraus jetzt nicht schlauer geworden.

2 Fragen:


Was wird hier gemacht:

1.
//------ CODE -----//
vgui::HScheme scheme;
//-----------------//

wird hier ein neues Objekt "scheme" vom typ "Hscheme" erstellt, welches eine Unterklasse!? von "vgui" ist !?!?


2.
//------ CODE -----//
scheme = vgui::scheme()->LoadSchemeFromFile("resource/ClientScheme.res", "ClientScheme");
//-----------------//


wird in der zuweisungszeile von Objekt "scheme" die methode von vgui: "scheme()" aufgerufen
welche wiederum eine methode LoadSchemeFromFile beinhaltet ?!?!


sorry, diese geschichte mit den "::" ist mir neu wenns nicht gerade methodendefinitionen einer klasse sind.

Währe super, wenn mir das jemand erklären könnte.

Dieser Post wurde am 09.03.2006 um 16:02 Uhr von Argonox editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.03.2006, 16:37 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


zu 1.

vgui kann ein namespace oder klasse sein, HScheme ist darin eine struktur/class oder typedef (welche public ist)

Rest war so richtig

zu 2.

es wird die Funktion "scheme" aus dem namespace/der klasse vgui aufgerufen, was scheinbar ein objektpointer zurückliefert, von dem dann LoadSchemeFromFile aufgerufen wird. Die Rückgabe von LoadSchemeFromFile wird dann der Variablen "scheme" zugewiesen.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.03.2006, 16:49 Uhr
Argonox



super ! vielen Dank.


was ist denn jetzt eigentlich genau der unterschied zwischen "::" und "." ?

Ich dachte auf Objekte und Methoden inerhalb eines Objektes greift man halt so drauf zu:

Objekt.Methode()

oder beim Zeiger halt:

Objekt->Methode()
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.03.2006, 17:39 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja ka was der aufruf da bezweckt, dazu kenn ich die begleitumstände nicht. um die Funktion "scheme" da von vgui aufzurufen muss sie, falls vgui eine class ist, statisch sein. Wenns ein namespace ist, ists ein normaler Namespace-Aufruf.

Also:


C++:
object instanz, *pointer;

object::funktion(); // aufruf einer statischen funktion, hat mit "instanz" nix am hut

instanz.funktion(); // aufruf einer normalen funktion, welche z.b das objekt "instanz" verändern kann oder werte liefert oder sonstwas

pointer = &instanz;

pointer->funktion(); // aufruf der funktion vom pointer aus.

//equivalent mit:
(*pointer).funktion(); // so machts nur keiner (also erst dereferenzieren und dann "normal" aufrufen


--
class God : public ChuckNorris { };

Dieser Post wurde am 09.03.2006 um 17:41 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.03.2006, 18:13 Uhr
Argonox



vielen Dank für Deine Hilfe
 
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: