was ist das für ein konstrukt => QFont::Bold
-
Oder eine nested Class. Oder ein enum. Oder ein Element eines Enums. Letzteres sollte übrigens der Fall des OP sein.
-
7H3 N4C3R schrieb:
Oder eine nested Class. Oder ein enum. Oder ein Element eines Enums. Letzteres sollte übrigens der Fall des OP sein.
Gehen wir mal davon aus, dass obiges fehlerfrei kompiliert (was ich zufällig weiß), dann kann es
a) keine nested class sein , denn dann wäre es QFont::Bold()
b) kein Enum sein, denn dann würde man einen Typ übergeben
c) Element eines Enums sein (ist es auch, nämlich von dem Enum QFont::Weight)
-
mmh, dann greift man wo hl so auf elemente einenes enums zu oder wie?
ich dachte das wäre aber bei enums so wie bei klassen.enum.foo;mach bitte ein beispiel...
-
achso, nested classes sind wohl klassen die andere klassen enthalten...
// nested_class_declarations.cpp class BufferedIO { public: enum IOError { None, Access, General }; // Declare nested class BufferedInput. class BufferedInput { public: int read(); int good() { return _inputerror == None; } private: IOError _inputerror; }; // Declare nested class BufferedOutput. class BufferedOutput { // Member list }; }; int main() { }wie würde denn eine implementation von einer nesetd class bzw. ein zugriff auf ein element einer nested class aussehen...
mal angenommen oberes beispiel wäre noch nicht implementiert...etwa
template <class T> T mainclass::internclass<T>::internclasselement()
-
User--- schrieb:
dann kann es
a) keine nested class sein , denn dann wäre es QFont::Bold()
b) kein Enum sein, denn dann würde man einen Typ übergebenIst mir absolut klar
Ich wollte nur alle Möglichkeiten auflisten, weil danach gefragt wurde.
-
Also wenn wir uns die Quellen von QT4.1 amschaun, dann ist in der Klasse QFont folgendes definiert:
enum Weight { Light = 25, Normal = 50, DemiBold = 63, Bold = 75, Black = 87 };mfg
-
7H3 N4C3R schrieb:
User--- schrieb:
dann kann es
a) keine nested class sein , denn dann wäre es QFont::Bold()
b) kein Enum sein, denn dann würde man einen Typ übergebenIst mir absolut klar
Ich wollte nur alle Möglichkeiten auflisten, weil danach gefragt wurde.Dann ist ja gut

btw. Dachte eigentlich, wenn ich Element schreibe decke ich alles mit einem Wort ab.
-
das verstehe ich nicht... in der klasse ist ein enum... damit würde es jetzt ähnlich funktionieren wie eine nested class... bloß wie funktioniert nzun der zugriff?
und warum kann man wenn die klasse qfont heistund ein objekt mit dem namen weight enhält schon mit class::element_enum daruf verweisen?
macht man das nicht erstens mit nem "."-operator und zweitens häppchenweise?
-
warum nicht:
QFont f; f.weight = Bold;warum:
QFont::Boldwann kann man sowas immer machen?
-
#include "stdafx.h" #include <iostream> class BufferedIO { public: enum IOError { None, Access, General }; static int X(){return 5;} // Declare nested class BufferedInput. class BufferedInput { public: int read(); int good() { return _inputerror; } static const int _inputerror = 4; }; // Declare nested class BufferedOutput. class BufferedOutput { // Member list }; }; int _tmain(int argc, _TCHAR* argv[]) { BufferedIO::BufferedInput a; std::cout<<BufferedIO::X(); system("Pause"); }ich wusste gar nicht das man dermaßen auf datenstrukturen zugreifen kann, gibt es tutorial das zusammenfässt wie man solche zugriffe machen kann? z.b.: kam mir erst ein compilerfehler weil ich nicht wusste das funktionen die man mit :: direkt aufruft static sein müssen... mit pointern auf funktionen sieht das vielleicht schon wieder anders aus...
ich habe das noch nie irgendwo erklärt bekommen und in biherigen tutorials war lediglich die implementirung über einen ::-operator übernommen wurden.. könnte man mir da eventuell weiterhelfen!
und nur zur sicherheit: wird bei QFont::Bold eine kopie des objektes vom typ int mit dem wert 75 übergeben? eigentlich schon oder..
ihr müsst es auch irgendwoher wissen, also ich studiere noch nicht gebt mir bitte ein buch oder tut verweis...
-
BufferedIO::IOError b; b = Access;warum ist das nicht möglich

-
Weil der Compiler nicht weis wo das Access genau steht bzw. welches gemeint ist.
-
Rechts oben im Forum gibts nen tollen Link, der sich Bücher nennt.