wie kann ich ein enum typ in eine klasse benutzen??



  • ich habe folgendes problem :: angenomen:

    [..include ,define]

    enum Kat{kat1,kat2,kat3,kat4};
    class XYZ{
    private:
    Kat kat_;
    public:
    explicit XYZ(Kat k=kat1
    :kat_(k)){
    }
    virtual ~XYZ(){ }

    Kat kat() const {
    return kat_;
    }
    void kat(Kat k) {
    kat_ = k;
    }

    };
    #endif

    bis jetz ist ok
    aber ich brauch eine funktion die

    eine von diese Enum kategorie wählt

    in folgenden kann #-- cout << kateg(x) --#// x ist zeiger von die klasse XYZ ich habe mit switch probiert aber es wirkt nicht zeigt keine fehler meldung aber wenn ich was eingebe da gibt 1 oder null zurück

    ich habe die funktion so aber ist nicht vollstaändig

    const std::string waehleKategorie( const XYZ &x){
    std::stringstream kategorie;
    
      kategorie << x.kategorie();
    
      //return kategorie.str();
    char theCharacter;
    std::cout << "geben sie eine Kategorie ein\n "
          <<"1-Wohenen \n"
          <<"2-Essen\n"  
          <<"3-Koerperpflege\n"  
          <<"4- Kleidung\n"  
          <<"5-Haushalt\n"  
          <<"6-Mobielitaet\n"  
          <<"7-Gesundheit \n"  
          <<"8-Versicherung\n"
          <<"9-Vergnuegen\n"
          <<"0-Sonstiges\n"  ;  
    // read the character from the keyboard
    
    std::cin >> theCharacter;
    
    switch( theCharacter )
    {/*
    case '1': output_str = "1-Wohnen " ; break;
    case '2': output_str = "2-Essen "  ; break;
    case '3': output_str = "3-Koerperpflege "; break;
    case '4': output_str = "4-Köerperpflege "; break;
    case '5': output_str = "5-Haushalt "; break;
    case '6': output_str = "6-Mobilitaet "; break;
    case '7': output_str = "7-Gesundheit "; break;
    case '8': output_str = "8-Versicherungen "; break;
    case '9': output_str = "9-Vergnuegen "; break;
    case '0':output_str = "10-Sonstiges " ;break;
    
    default: output_str = "Unzlaesige Kategorie";
    */}
    return kategorie.str();
     //cout << output_str << endl;   
    
    }
    

    ich wäre sehr dank bar wenn jemnad mich helfen wurde
    danke im voraus

    lodi



  • kannst du das Problem eventuell genauer erklären - der Kern der Frage ist irgendwo auf der Strecke geblieben.

    (PS: cout kann keine enum-Werte ausgeben, deshalb werden die vorher nach int umgewandelt - und du erhältst die numerische Entsprechung der enum's (0 für 'kat1' ... 3 für 'kat4'))



  • ich brauche eine hifsfunktin die ein wert rausgibt und das in eine mySQL anlegt

    mit zwei kategorien funktioniert das ohne probleme mit (a ? a : b) aber da ich viel habe muss ich diese funktion schreiben durch den der benutzer wählt Eine möglichket und mit diese wert wir gearbeitet

    ein kleine beispiel select * from XTAbelle Where funktionname(klassenZEIGER);//ein_buchstabe als kalsen zeiger
    und dan bei den suche wird der anwender gefragt von welche kategorie wollen Sie informatione haben
    oder für anlegen welche kategorie wollen Sie anlegen an datensatz
    das gluabe ich ist nicht schewer aber ich mache ein fehler (logische fehler ) das compiler meldet kein fehler aber das funktion ist wirkungslos

    ist mir ein bischen schwer genau zu erklären bitte um verständnis

    danke im voraus
    für jede Ide oder vorschlag
    mfg
    lodi



  • hat keine eine ide
    bitte hilft mir



  • lodi- schrieb:

    hat keine eine ide
    bitte hilft mir

    Vermutlich liegts daran dass kein Mensch versteht was Du möchtest, bitte um Verständnis.

    Im Ernst:
    Wenn DU Hilfe möchtest, erkläre das Problem so dass WIR es verstehen. Sonst wird das mit der Hilfe extrem schwierig. (Das fängt übrigens bei der Formatierung der Beiträge an)


Anmelden zum Antworten