Hi,
ich bin recht neu in C++ Programmierung und habe daher mal zwei, vieleicht dumme, Fragen :angel:
Frage 1:
ich habe eine abstrakte Basisklasse..
In dieser abstrakten Klasse habe ich einen Operator wie folgt überladen..
|
C-/C++-Quelltext
|
1
2
|
std::vector<LogEntry> &operator= (const std::vector<LogEntry> &vLogEntrys)
{ m_vLogEntrys = vLogEntrys; return m_vLogEntrys; }
|
wobei LogEntry eine einfache struct ist
wenn ich jetzt eine Klasse von der abstrakten Basis ableite, steht mir in der abgeleiteten Klasse der überladene Operator nicht mehr zur Verfügung.
Ich muss also den Operator für jede Klasse neu überladen, auch wenn er eigentlich immer das gleiche tut.
Ist das normal, oder mach ich was falsch? Gibt es eine Lösung um dieses "Problem" zu umgehen ?
Frage 2:
angenommen ich habe einen C-String vorliegen, der wie folgt aufgebaut ist:
"Datentext 1@Datentext Nummer 2@noch ein Teilstring@usw@"
wobei die einzelnen "Stringteile" jeweils durch ein Trennzeichen ( hier das @ ) voneinander getrennt sind.
Um diesen Text in seine einzelnen Bestandteile zu zerlegen, wollte ich das ganze mit sscanf() in die einzelnen Variablen einlesen.
sscanf() benutzt aber als Trennzeichen standartmässig das Leerzeichen bzw. Return.
Irgendwie glaube ich mich zu erinnern, das man das Trennzeichen für die scanf() und sscanf() Funktionen umdefinieren ( irgendwie ändern ) kann !?
Habt Ihr da ne Idee ? oder ist das schlichtweg nicht möglich ?
Habt Ihr evtl. ne andere/bessere Idee wie man das lösen kann ?
LG
EnLa