Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Enumerator + String (typdifferenz)

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
13.11.2003, 12:29 Uhr
~groove
Gast


Folgendes Problem.
Ich habe einen CString "Januar" und eine Enumerator-Liste.
Folglich: eine Typdifferenz.
Wie läßt sich überbrücken?

(Ps. In JavaScript gibt es so eine kleinen Operator
eval(datum)
der einen String als Objekt auffaßt. Hab meine C++ Handbücher durchgeschaut - aber nicht einmal das Problem erwähnt gefunden.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.11.2003, 12:54 Uhr
0xdeadbeef
Gott
(Operator)


Zeig Code.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.11.2003, 13:05 Uhr
virtual
Sexiest Bit alive
(Operator)


CString ist eine Klasse, die Enumeration ein eigener Typ. Wenn es keinen dafür definierten Zuweisungsoperator gibt (wenn Du es nicht selbst gemacht hast, gibt es ihn nicht), kannst Du auch nicht zuweisen.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 13.11.2003 um 13:05 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.11.2003, 13:10 Uhr
0xdeadbeef
Gott
(Operator)


Wer weiß, was sich in den MFC so alles verbigt. Mir ist jedenfalls nicht klar, was er eigentlich meint.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.11.2003, 14:28 Uhr
~groove
Gast


ist ein Programm, das grammatikalische Strukturen analysiert

Der Enumerator sähe so aus:

enum pronomina
{
ich = 1,
du,
er,
sie,
Sie,
es,
man,
wir
}

Dann werden Sätze eingelesen - in einzelne CString Objekte gepackt.
Ich hätte also

CString x = "ich";

Beide Typen sind (evidentermaßen) nicht kompatibel.
Die Frage wäre: wie kann ich den CString zu einem <pronomina>-Objekt machen?

Nebenbei. Ich benutze kein MFC, sondern arbeite in diesem Fall ganz altmodisch - stream- und byteorientiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.11.2003, 14:43 Uhr
0xdeadbeef
Gott
(Operator)


Du benutzt die MFC, sonst hättest du keinen CString. In diesem Fall hat virtual schon recht, eine Umwandlung ist so einfach nicht möglich, weil die Bezeichner der Pronomina beim Kompilieren verloren gehen. Du wirst dir eine entsprechende Routine basteln müssen, die das fallunterscheidet. Allerdings könntest du es dir auch einfacher machen und eine map benutzen:

C++:
#include <map>

//...

std::map<CString, int> pronomina;
pronomina["ich"] = 1;
pronomina["du"] = 2;

//...

CString s = "ich";
if(pronomina[s] == 1) {
  //...
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 13.11.2003 um 14:45 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
13.11.2003, 14:51 Uhr
~groove
Gast


Schönen Dank. Arbeite gerade mit Maps, insofern ist das nicht fernliegend.
Dennoch: frage ich mich, ob das die einzige Lösung ist. Das hieße ja, daß zwischen der Welt der Strings und der Objekte ein tiefer Graben läge, der ununbrückbar ist (und das in diesem Falle C++ einer kleinen läppischen Compilersprache wie JavaScript unterlegen wäre).


(Zu CString - ich benutze, um die MFC zu vermeiden, eine kompatible Klasse, MString - sehr schön, hat zudem noch einen größeren Funktionsumfang)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
13.11.2003, 14:58 Uhr
virtual
Sexiest Bit alive
(Operator)


Der graben ist nicht unüberbrückbar, aber die Brücke ist sicherlich schmaler, als die in Java(Script). C++ ist (auch) deshalb deutlich komplizierter als zB Java. von einer Unterlegenheit würde ich deshalb jedoch nicht sprechen, weil es immer auf den Standpunkt ankommt.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
13.11.2003, 15:16 Uhr
~groove
Gast


Schön Dank,
aber gibt's (außer Maps) eine konkrete Idee, wie man den Graben überbücken könnte?
 
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: