Seite 1 von 2

C++: Klassen - Fehlerbehebung bei strings?

BeitragVerfasst: 19. Mär 2010, 21:48
von Gast
Hallo erstmal!
Es geht mal wieder um die allseits beliebten strings in c++. (keine ahnung warum über die noch kein buch geschrieben wurde xD) in diesem fall im zusammenhang mit klassen und destruktoren. ich laber garnicht lange und veranschauliche das durch nen quellcode:
Code: Alles auswählen
#include <iostream>
using namespace std;


class hund
{
    public:
    string fell;
    string rasse;
    int alter;
    hund(string, string, int);
    ~hund();
};

hund::hund(string Nfell, string Nrasse, int Nalter)
{
    this->fell = Nfell;
    //so und hier ist mein problem. wenn jetzt unten bei der zuweisung dem string fell nix zugewiesen wird, wie kann ich jetzt dem string fell ein "nicht gegeben" zuweisen? mit einer if anweisung?
    this->rasse = Nrasse;
    this->alter = Nalter;
};

hund::~hund()
{
}

int main()
{
    hund hund1(/*hier steht jetzt nichts bei "fell"!*/"Golden Retriever", 4);
    cout << hund1.fell << "   " << hund1.rasse << "   " << hund1.alter << endl;
}

kennt ihr eine lösung für das problem? wär echt cool!
mfg

Re: C++: Klassen - Fehlerbehebung bei strings?

BeitragVerfasst: 19. Mär 2010, 21:58
von liro
versteh dein Problem nicht...
nfell ist doch "gegeben" und _wird_ zu gewiesen

habs kompiliert und -siehe da- es funtzt :lol:

Re: C++: Klassen - Fehlerbehebung bei strings?

BeitragVerfasst: 19. Mär 2010, 22:03
von Gast
also mein problem ist:
ich habe da unten jetzt die neue variable hund1. die klasse hund hat 3 member, so muss dem neuen hund1 ja 3 werte zugewiesen werden. aber ich weiße lediglich 2 werte zu, nämlich die beiden letzten (Nrasse und Nalter) und lasse Nfell aus. jetzt soll genau dafür oben bei der klasse etwas passieren, nämlich das das ausgelassenen Nfell zu "nicht angegeben" wird. und genau da ist mein problem!

Re: C++: Klassen - Fehlerbehebung bei strings?

BeitragVerfasst: 19. Mär 2010, 22:09
von liro
aso ... hat ja nix mit strings zu tun ...

Code: Alles auswählen
#include <string>
#include <iostream>
using namespace std;


class hund
{
    public:
    string fell;
    string rasse;
    int alter;
    hund(string, string, int);
   hund(string, int);
    ~hund();
};

hund::hund(string Nfell, string Nrasse, int Nalter)
{
    this->fell = Nfell;
    //so und hier ist mein problem. wenn jetzt unten bei der zuweisung dem string fell nix zugewiesen wird, wie kann ich jetzt dem string fell ein "nicht gegeben" zuweisen? mit einer if anweisung?
    this->rasse = Nrasse;
    this->alter = Nalter;
};

hund::hund(string Nrasse, int Nalter)
{
    this->fell = "tolles fell ...";
    //so und hier ist mein problem. wenn jetzt unten bei der zuweisung dem string fell nix zugewiesen wird, wie kann ich jetzt dem string fell ein "nicht gegeben" zuweisen? mit einer if anweisung?
    this->rasse = Nrasse;
    this->alter = Nalter;
};

hund::~hund()
{
}

int main()
{
    hund hund1("Golden Retriever", 4);
   cout << hund1.fell << "   " << hund1.rasse << "   " << hund1.alter << endl;
}

Re: C++: Klassen - Fehlerbehebung bei strings?

BeitragVerfasst: 19. Mär 2010, 22:11
von Gast
oh! ach bin ich blöd.. ~.~ ja thx liro!

Re: C++: Klassen - Fehlerbehebung bei strings?

BeitragVerfasst: 19. Mär 2010, 22:12
von liro
ehh ... hast du den 2. konstruktor gesehn ?

Re: C++: Klassen - Fehlerbehebung bei strings?

BeitragVerfasst: 19. Mär 2010, 22:12
von Gast
jup hab ich.
achsoo dann dient der also als fehlerbeheber? das geht? cool..

Re: C++: Klassen - Fehlerbehebung bei strings?

BeitragVerfasst: 19. Mär 2010, 22:15
von liro
ne ... der Kompiler guckt, welcher Konstruktor besser passt, und ruft dann den auf

Re: C++: Klassen - Fehlerbehebung bei strings?

BeitragVerfasst: 19. Mär 2010, 22:17
von Gast
und das wirft jetzt wieder ein frage auf:
bei dem zweiten konstrukter lässt man also das aus, was einem wert zugewiesen werden soll (also hier Nfell). was aber wenn keinem der 3 member ein wert zugewiesen wurde? class hund::hund() geht ja nicht. wie also?

Re: C++: Klassen - Fehlerbehebung bei strings?

BeitragVerfasst: 19. Mär 2010, 22:19
von Gast
oh hoppala, hab die funktions-prototypen in der klasse übersehen x.x. so geht das also. das wärs dann, danke liro.