Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » problem mit der übergabe von char-arrays

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
05.10.2005, 22:14 Uhr
~Chrisx
Gast


hio!
ich habe folgendes problem:

also ich habe eine klasse Auto:


C++:
class Auto
{
     private:
    
          char m_chHersteller[21];
          char m_chModell[21];

     public:
    
          void erstelleAuto (char* Hersteller, char* Modell);
}
// Die Klasse ist mal auf das beschränkt, was sich auf mein Problem bezieht



hier die funktion erstelleAuto ():


C++:
void erstelleAuto (char* Hersteller, char* Modell)
{
     m_chHersteller = Hersteller;
     m_chModell =     Modell;
}



die funktion erstelleAuto wird so vond er main() aus aufgerufen:


C++:
     char chHersteller[21];
     char chModell[21];
     Auto Auto1;

     cout << "Hersteller des Autos: ";
     cin.get(chHersteller, 20);
     cout << "Modell des Autos    : ";
     cin.get(chModell, 20);

     Auto1.erstelleAuto(chHersteller, chModell);



also was eben passieren soll ist, das der user nach hersteller&modell des autos gefragt wird. diese werden dann eingelesen und an die funktion "erstelleAuto" gegeben, die diese daten dann den membern der klasse "Auto" übergeben soll...allerdings bekomme ich einfach nich das eine char-array in das andere übergeben.

wie geht das nun ohne std::string und ohne set-funktion für jede membervariable...das hab ich nämlich schon lösen können, wollte es aber noch mal mit den char-arrays direkt ändern
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
05.10.2005, 22:43 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


char* ist nur ein zeiger... das gleichsetzen hilft dir hier nicht weiter, sondern du müsstest von hand oder mit einer funktion strcpy die einzelnen chars kopieren... da du aber c++ verwendest brauchst du dich mit solchen dingen nicht mehr auseinander zu setzen.. nimm z.B. einfach einen std::string


C++:
class Auto
{
     private:
    
          std::string m_chHersteller;
          std::stringr m_chModell;

     public:
    
     Auto(std::string & Hersteller, std::string & Modell);
      //    void erstelleAuto (char* Hersteller, char* Modell);
     diese aufgabe überimmt normalerweise ein konstruktor, zum ändern oder auslesen der einzelnen members schreibt man sich z.B. getter und setter funktionen

}

Auto::Auto(std::string & Hersteller, std::string & Modell):m_chHersteller(Hersteller),Modell(m_chModell){}


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.10.2005, 18:26 Uhr
ao

(Operator)



Zitat von ~Chrisx:
wie geht das nun ohne std::string

Mit C-Funktionen (z.B. strcpy), aber besser gehts mit std::string & Co., dafür wurden die nämlich gemacht, dass man nicht mehr mit char* rumpointert, bis sich alles dreht.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
06.10.2005, 18:43 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@ao
wer den text zuende liest ist klar im Vorteil
--
...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: