www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Dt. Schulen im Ausland: Mathe-Seiten:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "C/C++" - C++ Adressbuch: Konstruktor
C++ Adressbuch: Konstruktor < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

C++ Adressbuch: Konstruktor: Frage (reagiert)
Status: (Frage) reagiert/warte auf Reaktion Status 
Datum: 10:49 So 18.12.2005
Autor: bastardbychoice

Ich habe diese Frage auch in folgenden Foren auf anderen Internetseiten gestellt:
[]http://www.developerboard.de/viewtopic.php?t=280

Tach!
Ich muß ein Adressbuch inkl. Terminen in C++ erstellen.
Bisher ahbe ich Folgendes:


#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;

//     Variablendeklaration

string nachn, vorn, str, hsnr, plz, ort, telnr, email;
string uName, uArt;
string gebDat, geschl, hobby;
string nameEntf;
string jn;
int n, i, eing;

/*
###############################################################
#                   Oberklasse Kontakt                        #
###############################################################
*/

class Kontakt{          
      public:
            
      
      public:
           Kontakt();
          
      public:
           void start();
          
};

//    Default-Konstruktor der Klasse Kontakt

Kontakt::Kontakt() {
              nachn="";
              vorn="";
              str="";
              hsnr="";
              plz="";
              ort="";
              telnr="";
              email="";
              }
      
/*
#################################################################
#               Unterklasse KontaktDienst                       #
#################################################################        
*/

class KontaktDienst:public Kontakt{
      
      public:
             KontaktDienst();
            
};

//       Default-Konstruktor der Unterklasse KontaktDienst

KontaktDienst::KontaktDienst(){
        uName = "";
        uArt = "";
        }
        
        
/*
##################################################################
#                Unterklasse KontaktPrivat                       #
##################################################################
*/        
        
class KontaktPrivat:public Kontakt{
      
      public:
             KontaktPrivat();
            
};

//      Default-Konstruktor der Unterklasse KontaktPrivat

KontaktPrivat::KontaktPrivat(){
        gebDat = "";
        geschl = "";
        hobby = "";
        }
        

/*
##################################################################
#         Methode 'kanlegen', die neue Kontakte anlegt           #
##################################################################
*/


void kanlegen(){
     cout << "Bitte Nachnamen eingeben:  ";
     cin >> nachn;
     cout << "Bitte Vornamen eingeben:  ";
     cin >> vorn;
     cout << "Bitte Strasse eingeben:  ";
     cin >> str;
     cout << "Bitte Hausnummer eingeben:  ";
     cin >> hsnr;
     cout << "Bitte Postleitzahl eingeben:  ";
     cin >> plz;
     cout << "Bitte Wohnort eingeben:  ";
     cin >> ort;
     cout << "Bitte Telefonnummer eingeben:  ";
     cin >> telnr;
     cout << "Bitte eMail-Adresse eingeben:  ";
     cin >> email;
    
     cout << "Kontakt namens '" << nachn << "' [mm] angelegt\n"; [/mm]
    
     cout << "Wollen Sie weitere [mm] \x8Enderungen durchf\x81hren? [/mm]   (j / [mm] n)\n\n"; [/mm]
     cin >> jn;
     //if (jn == "j") {Kontakt:start();}
     //else cout << "Bis bald!";
     system("PAUSE");
     }


/*
###################################################################
#             Methode 'tanlegen', die neue Termine anlegt         #
###################################################################
*/


void tanlegen(){
     cout << "Zu welchem Kontakt wollen Sie einen Termin anlegen?  ";
     cin >> n;
    
     system("PAUSE");
     }
    

/*
###################################################################
#    Methode 'ausgeben', die alle Kontakte mit Terminen ausgibt   #
###################################################################
*/


void ausgeben(){
     //for(i=0; i<kon[].length; i++){
              //cout << kon[i];
    
     //}
     }
    
void delkon(){
     cout << "Geben Sie den Namen des Kontakts ein, den Sie entfernen [mm] wollen:\n\n"; [/mm]
     cin >> nameEntf;
     for (i=0; i<50; i++){
         if (nameEntf == nachn.kon[i]){
                      nachn.kon[i] = NULL;
                      }
         else cout << "Kontakt nicht vorhanden!";
         }
         }
    


/*
##################################################################
#          Methode 'start', die das Menü darstellt               #
##################################################################
*/


void start(){
     cout << "Adressbuch & [mm] Terminverwaltung\n\n"; [/mm]
     cout << "Neuen Kontakt anlegen :                 [mm] 1\n"; [/mm]
     cout << "Termin zu Kontakt anlegen:              [mm] 2\n"; [/mm]
     cout << "Entfernen eines Kontakts / Termins:     [mm] 3\n"; [/mm]
     cout << "Suchen eines Kontakts / Termins:        [mm] 4\n"; [/mm]
     cout << "Auflistung aller Kontakte mit Terminen: [mm] 5\n\n"; [/mm]
     }
  

          
      
      int main()
      {
         Kontakt kon[50];
         start();
         cin >> eing;
         switch(eing){
             case 1:{
                  cout << "Neuen Kontakt [mm] anlegen:\n\n"; [/mm]
                  kanlegen();
                  break;
                  }
             case 2:{
                  cout << "Neuen Termin [mm] anlegen:\\n"; [/mm]
                  //Kontakt:tanlegen();
                  break;
                  }
             case 3:{
                  delkon();      
                  break;
                  }
             case 4:{
                  cout << "Sie wollen einen Kontakt / Termin [mm] suchen.\n"; [/mm]
                  //Kontakt:ktsuchen();
                  break;
                  }
             case 5:{
                  cout << "Sie wollen alle Kontakte mit Terminen [mm] ausgeben.\n"; [/mm]
                  //Kontakt:ausgeben();
                  break;
                  }
             default:{
                  cout << "Diese Funktion ist nicht [mm] verfuegbar.\n"; [/mm]
                  }
         system("PAUSE");
         return (0);
}  
}


Mein Problem:

Ich kriegs nicht hin, wie man ein Objekt anlegt.
Es sollen max. 50 Objekte anzulegen sein.
Das Einlesen von Nachname usw. klappt ja, aber wie bekomme ich diese Daten in ein Objekt?

Stimmt außerdem die Syntax in der Methode delkon, in der versucht wird, den Nachnamen (und alle anderen Daten des Kontakts, ist nur noch nicht implementiert) auf NULL zu setzen)?

Danke im voraus!



        
Bezug
C++ Adressbuch: Konstruktor: Antwort
Status: (Antwort) fertig Status 
Datum: 14:02 Mo 19.12.2005
Autor: Karl_Pech

Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)

Hallo b.b.c.,


[willkommenir]


Wenn Du das nächste Mal hier etwas fragst, so wäre es nett, wenn Du nur die Teile des Codes hier reinstellen würdest, die für dein Problem relevant sind.


> void delkon(){
>       cout << "Geben Sie den Namen des Kontakts ein, den
> Sie entfernen [mm]wollen:\n\n";[/mm]Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)


>       cin >> nameEntf;
>       for (i=0; i<50; i++){


for(int i = 0; i< 50; i++)


oder hattest Du i schon irgendwo deklariert?



>           if (nameEntf == nachn.kon){
>                        nachn.kon = NULL;


Tut mir Leid, aber mit kon kann ich nicht so viel anfangen, ist das ein Standard-Attribut von 'string'?


>                        }
>           else cout << "Kontakt nicht vorhanden!";
>           }
>           }
>       
>
>
> /*
>
> [i][i][i]> Ich kriegs nicht hin, wie man ein Objekt anlegt.
> Es sollen max. 50 Objekte anzulegen sein.
> Das Einlesen von Nachname usw. klappt ja, aber wie bekomme
> ich diese Daten in ein Objekt?


Dein 50 Objekte könntest Du z.B. so erzeugen:


1:
2: Kontakt contacts[49];



Wobei dabei allerdings dein Default-Konstruktor (ohne Parameter) aufgerufen wird. Willst Du einen anderen Konstruktot benutzen, kommst Du um eine Schleifenkonstruktion wohl nicht umher:


1:
2: Kontakt* contacts[50]; // Array von Zeigern auf Objekte vom Typ Kontakt
3: for(int k = 0; k < 50; k++)
4:  contacts[k] = new Kontakt(/*(*)*/); // (*): Hier stehen Argumente, die Du
5: // nicht an den Default-Konstruktor übergeben kannst.



Und wenn Du z.B. auf ein Objekt zugreifen willst, geht das z.B. so


1:
2: contacts[34].irgendwas = "etwas";



Aber so wie Du das gemacht hast, hättest Du nach dem Erzeugen


50 Kontakt-Objekte, die alle auf die gleichen globalen Variablen zugreifen. Das heißt deine Methode delkon() kann gar nicht indivuell mit einem Objekt umgehen, weil es stattdessen auf global deklarierte Variablen zugreift. Und das willst Du doch bestimmt nicht. Du solltest dafür sorgen, daß jedes Objekt seine eigenen Attribute ("öffentlich/private/... Variablen") besitzt. Dazu verschiebst Du diese Variablendeklarationen:


> //     Variablendeklaration
>  
> string nachn, vorn, str, hsnr, plz, ort, telnr, email;
>  string uName, uArt;
>  string gebDat, geschl, hobby;
>  string nameEntf;
>  string jn;
>  int n, i, eing;
>  


in deine Klassendeklaration:


> class Kontakt{          
> public:
> string nachn, vorn, str, hsnr, plz, ort, telnr, email;
>  string uName, uArt;
>  string gebDat, geschl, hobby;
>  string nameEntf;
>  string jn;
>  int n, i, eing;
>
>             Kontakt();
>            
> public:
>             void start();
>            
> };


(Das ist die Idee; ob's auf Anhieb kompiliert ist eine andere Sache ;-) hab' schon einige Zeit nicht mehr programmiert... :(   )



Viele Grüße
Karl





Bezug
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.vorhilfe.de