S
physikus schrieb:
basic_string() : m_begin(NULL), m_size(0) {}
was bedeutet hier der doppelpunkt? und die parameter dahinter?
Hinter dem Doppelpunkt befindet sich die Initialisierliste des Konstruktors. m_begin wird auf NULL gesetzt, m_size ebenfalls. (Unter dem Begriff Initialisierliste solltest du auch in irgendeinem Tutorial finden, warum man sie manchmal braucht)
physikus schrieb:
wie funktioniert das genau mit dem template?
Templates schnell umrissen: Du schreibst danach basic_string<meintyp> und er ersetzt ueberall wo du T stehen hast das T durch meintyp. In diesem Fall nutzt DEvil das um fuer normale chars, vorzeichenlose chars (unsigned char) und wide characters (w_chart) die Klasse nutzen zu koennen, wie du an den typedefs hinter der Klasse sehen kannst.
[quote="physikus"]
Bei deiner struct versteh ich auch nur die hälfte[quote]
struct Item
{
T ch; //Das Zeichen, das wir abspeichern (du bastelst hier ja ne Zeichenkette
Item* next; //wo steht das naechste Zeichen (muss man ja irgendwie wiederfinden)
Item() : ch(0), next(NULL) {} //Default Konstruktor
Item(Item* next, T ch) : ch(ch), next(next) {} //Konstruktor, speichere das Zeichen ch und das naechste Zeichen nach dem hier steht bei next
Item(const Item& it) : ch(it.ch), next(it.next) {} //Copy-Konstruktor, wenn wir ein Item haben und es kopieren wollen.
} m_begin;
Ich hoffe ich habe jetzt nichts verwechselt, wenn doch bitte korrigieren.