Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Absolute Neueinsteigerfrage.

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
16.12.2003, 14:59 Uhr
~Arananka
Gast


Guten Tag.
Bin Umsteiger (VBA auf C++). Ich schlage mich hier zum ersten mal mit C++Klassen rum (Lehrbuch liegt nebebn mir).
Nun die Frage: Ich habe eine Klasse generiert. Wenn ich dieses "Programm kompilieren will, kommt folgendes:

C++:
#include <iostream.h>
class Hund
    {
    public:
        int HoltAlter();
        char HoltGeschlecht();    
        char HoltName();
        void SetztAlter(int Alter);
        void SetztGeschlecht(char Geschlecht);
        void SetztName(char Name);
        void Bellen();
    private:
        int seinAlter;
        char seinGeschlecht;
        char seinName;
    };

int Hund::HoltAlter()
    {
    return seinAlter;
    }
char Hund::HoltGeschlecht()
    {
    return seinGeschlecht;
    }
char Hund::HoltName()    
    {
    return seinName;
    }
void Hund::SetztAlter(int Alter)
    {
    seinAlter = Alter;
    }
void Hund::SetztGeschlecht(char Geschlecht)
    {
    seinGeschlecht = Geschlecht;
    }
void Hund::SetztName(char Name)
    {
    seinName = Name;
    }
void Hund::Bellen()
    {
    cout<<"Wau, Wau!\n";
    }

int main()
    {
    Hund Micha;
    int Alter = 4;
    char Geschlecht = "Rüde";    
//error C2440: 'initializing' : 'char [5]'
//kann nicht in 'char' konvertiert werden. Diese Konvertierung
//erfordert einen reinterpret_cast-Operator oder eine Typumwandlung
//im C- oder Funktionsformat
    char Name = "Micha";        
//error C2440: 'initializing' : 'char [6]'
//kann nicht in 'char' konvertiert werden. Diese Konvertierung
//erfordert einen reinterpret_cast-Operator oder eine Typumwandlung
//im C- oder Funktionsformat
        Micha.SetztAlter(Alter);
        Micha.SetztName(Name);
        Micha.SetztGeschlecht(Geschlecht);
        Micha.Bellen();
        cout << Micha.HoltName();
        cout << " ist unser Hundetier und er ist ";
        cout << Micha.HoltAlter();
        cout << " Jahre alter ";
        cout << Micha.HoltGeschlecht();
        cout << ".\n";
        Micha.Bellen();
    return(0);
    }

und die Kompilierung bricht ab. Warum?
Der Verzweiflung nahe.
mfg
Arananka
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.12.2003, 15:02 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


char ist im allgemeinen nur ein byte
wenn du einen text speichern willst brauchst du ein byte array also für jeden buchstaben ein einzelnes char

wenn du sowieso c++ benutzt würde ich mich an deiner stelle nicht mehr mit chars rumärgern sondern gleich einen std::string verwenden...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
16.12.2003, 15:03 Uhr
typecast
aka loddab
(Operator)


Ok erstens, versuche bitte deine Topic-Überschriften auch aussagekräftig zu wählen.

Dein Problem liegt daran, dass char nur ein Buchstabe ist. Da du C++ verwendest, würde ich dir zur Klasse std::string raten. Damit funktioniert dein Programm.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
16.12.2003, 15:05 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@Loddab
zwei personen eine antwort....
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
16.12.2003, 15:19 Uhr
(un)wissender
Niveauwart


Zwei Personen ein Körper wäre interessanter...


C++:
#include <string>
#include <iostream>

int main()
{
std::string noChar = "Dies ist kein char, sondern ein String";
std::cout << noChar << std::endl;
return 0;
}


--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
16.12.2003, 15:24 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Die geile Bell-Methode hat mich dazu insperiert das mal schnell abzuändern
Wenn ich mich nicht irre kann diese Aufgabe nur von einer Frau sein....

C++:
#include <iostream>
#include <string>
class Hund
    {
    public:
        Hund(){};
        Hund(int Alter,std::string Name, std::string Geschlecht);
        
        int HoltAlter();
        std::string HoltGeschlecht();    
        std::string HoltName();
        void SetztAlter(int Alter);
        void SetztGeschlecht(std::string Geschlecht);
        void SetztName(std::string Name);
        void Bellen();
    private:
        int Alter;
        std::string Geschlecht; //ist die frage ob man hierfür einen string nehmen will aber es soll ja auch metrosexuelle Hunde und weiss ich was noch für welche geben...:D
        std::string Name;
    };

Hund::Hund(int Alter,std::string Name, std::string Geschlecht){this->Alter=Alter;this->Name=Name;this->Geschlecht=Geschlecht;}

int Hund::HoltAlter(){return Alter;}
std::string Hund::HoltGeschlecht(){return Geschlecht;}
std::string Hund::HoltName(){return Name;}
void Hund::SetztAlter(int Alter){this->Alter = Alter;}
void Hund::SetztGeschlecht(std::string Geschlecht){this->Geschlecht=Geschlecht;}
void Hund::SetztName(std::string Name){this->Name=Name;}
void Hund::Bellen(){std::cout<<"Wau, Wau!\n";} //Die vermutlich wichtigste Funktion...

int main(){
Hund Micha(4,"Micha","Rüde");
Micha.Bellen();
std::cout << Micha.HoltName();
std::cout << " ist unser Hundetier und er ist ";
std::cout << Micha.HoltAlter();
std::cout << " Jahre alter ";
std::cout << Micha.HoltGeschlecht();
std::cout << ".\n";
Micha.Bellen();
return(0);
}



@(un)wissender
deine verschmelzungsanspielungen sagen mir: du hast eindeutig zu wenig sex in letzter zeit....
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
16.12.2003, 15:27 Uhr
typecast
aka loddab
(Operator)



--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
16.12.2003, 15:31 Uhr
(un)wissender
Niveauwart


Hat hier jemand Sex gesagt? Sex?!

Verdammt, wo ist das Niveau hin, wir hatten es doch extra angebunden!
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
16.12.2003, 15:36 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Verdammt, wo ist das Niveau hin, wir hatten es doch extra angebunden!



--
...fleißig wie zwei Weißbrote
 
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: