Objekt einer Klasse mit Variableninhalt als Name des Objekts?



  • Ich habe muss als Projektarbeit an der HS ein Modell unseres Sonnensystems in C++ (mit MS VS 2003) programmieren.

    Ich habe die Daten der verschiedenen Planeten in einer Datei abgespeichert aus der diese dann ausgelesen werden. jetzt will ich für jeden Datensatz eines PLaneten ein Objekt der Klasse PLanet erstellen, wobei der Name auch aus der Datei kommen soll. Ich hab mir das ganze ungefähr so vorgestellt:

    class Planet
    {
    };
    void main()
    {
       char str[2000];
       std::fstream file_op("c:\\Planeten.dat",ios::in);
       while(!file_op.eof())
          {
              file_op.getline(str,2000);
    	  Planet str;
              //restliche Daten in Objekt einlesen
          };
    };
    

    Der Code ist jetzt nicht komplett, mir geht es nur um das Erstellen des Objektes. Kann es sein das ich das irgendwie mit Zeigern machen muss? Damti steh ich nämlich ziemlich auf Kreigsfuss 😉
    Wäre super wenn mir jmd dabei helfen könnte 🙂



  • Das geht nicht. Gib doch einfach der Klasse ein Attribut name vom Typ std::string



  • Deine Klasse Planet könnte einen constructor haben der einen string als parameter annimmt. etwas so

    class Planet {
    public:
      Planet( const string & n ): name(n) {s = 0.0;}
      void set_size(double s) { size = s; }
    protected:
     string name;
     double size;
    };
    

    main würde dann so aussehen
    [cpp]int main()
    {
    char str[2000];
    std::fstream file_op("c:\\Planeten.dat",ios::in);
    while(!file_op.eof())
    {
    file_op.getline(str,2000);
    Planet p(str);
    //restliche Daten in Objekt einlesen
    p.set_size( .. );
    };
    }[/cpp]



  • Danke für die schnelle Hilfe 🙂

    Habs kurz getestet, Fehler gabs schon mal keine. Werd nachher mal weiterarbeiten und schauen ob ich damit klar komme


Anmelden zum Antworten