spreader
Goto Top

Wie erstelle ich ein Array von Objekten?

Hallo Zusammen!

Folgender Code:

Class Autoreifen
{
      private bool sommer;

      public: Autoreifen(bool isommer)
      {
          sommer=isommer;
      }
}

Class Auto
{
      Autoreifen* autoreifen[4];
      public: Auto()
      {
           for(int i=0;i<4;i++) autoreifen[i]=new autoreifen(true);
      }
}

Im Klartext: ich will, dass mein Auto 4 Sommerreifen bekommt. Aber irgendwie funktioniert das nicht.

Bitte um Hilfe!

Content-ID: 128473

Url: https://administrator.de/contentid/128473

Ausgedruckt am: 19.11.2024 um 22:11 Uhr

gijoe
gijoe 03.11.2009 um 01:16:20 Uhr
Goto Top
Hi,
sieht eigentlich nicht schlecht aus, du initialisierst den Array mit den Objekten. Wo liegt denn das Problem? Was für eine Sprache ist das genau? Wie sieht die Fehlermeldung aus?
TsukiSan
TsukiSan 03.11.2009 um 03:46:59 Uhr
Goto Top
Hi spreader,

wir vermuten mal, dass es sich um C++ handelt.
Dann würde ich:
15.      { 
16.           for(int i=0;i<4;i++) autoreifen[i]=new autoreifen(true); 
17.      } 
mal so umschreiben:
15.      { 
16.           for(int i=0;i<4;i++) 
  {
                   autoreifen[i]=new autoreifen(true); 
  }
17.      } 

Gruss
Tsuki
mrtux
mrtux 03.11.2009 um 06:35:05 Uhr
Goto Top
Hi !

Zitat von @gijoe:
das genau? Wie sieht die Fehlermeldung aus?

Tyres out of season error.....jaschonruhigbin... face-smile

mrtux
spreader
spreader 03.11.2009 um 11:17:13 Uhr
Goto Top
Super hat funktioniert Danke TsukiSan!
Guenni
Guenni 03.11.2009 um 21:49:58 Uhr
Goto Top
Hi spreader,


Im Klartext: ich will, dass mein Auto 4 Sommerreifen bekommt.

Wieviele denn sonst face-smile ?


Ich würde . . .

1. auf das Array verzichten, denn Bereifung ist Bereifung, egal wieviel Reifen es sind

2. statt einen bool'schen Parameter auf true(Sommer) oder false(Winter) zu setzen, eine

Funktion einsetzen, die mir den aktuellen Monat liefert, dann wird "automatisch die richtige Bereifung gewählt".


Mein Vorschlag:

#include "stdafx.h" 
#include <time.h>
#include <string.h>

/* Funktionsprototypen*/
int monat(void);

class CAuto{
private:
	char *Bereifung;
public:
	CAuto(); 
	void bereifung(int);
	void zeige_reifen();
};

int _tmain(int argc, _TCHAR* argv){

	/* Ein Auto erzeugen */

	CAuto MeinAuto;

	/*
	Reifen aufziehen:
	monat() gibt den aktuellen Monat zurück, deshalb werden jetzt Winterreifen zugewiesen(November bis März)
	Um Sommerreifen zuzuweisen, in den Klammern eine Zahl zwischen 4 und 10(April bis Oktober) eingeben
	*/

	MeinAuto.bereifung(monat());

	/* Mit welchen Reifen fährt mein Auto? */

	MeinAuto.zeige_reifen();

	return 0;
}

/*************** Klassenmethoden **********************/

/* Standardkonstruktor */

CAuto::CAuto(){}

/* Bereifung zuweisen */

void CAuto::bereifung(int m){
	Bereifung=new char[12];
	if(m>10 || m<4){
		strcpy(Bereifung,"Winterreifen");  
	}else{
		  strcpy(Bereifung,"Sommerreifen");  
		}
}

/* Aktuelle Bereifung zeigen */

void CAuto::zeige_reifen(){
	printf("\nIhr Auto faehrt zur Zeit mit %s.\n\n",Bereifung);  
}



/* Funktionsprototypen */

Funktion gibt aktuellen Monat als Zahl zurück
*/

int monat(){
    time_t Zeitstempel;
    tm *nun;
    Zeitstempel = time(0);
    nun = localtime(&Zeitstempel);
    return (nun->tm_mon+1);
}

Da die Bereifung zu den Standardeigenschaften eines Auto's gehört, finde ich es sinnvoller diese

Eigenschaften auch in die "Autoklasse" aufzunehmen(Nur meine Meinung).

Gruß
Günni

P.S.:

Was für eine Sprache ist das genau?

wir vermuten mal, dass es sich um C++ handelt.

Wirklich sehr schwer zu erraten, wenn man sich ansieht, in welchem Bereich der Fragesteller postet.

Wie sieht die Fehlermeldung aus?

Ein syntaktisch richtiger Code erzeugt keine Fehlermeldung.


Quelle zu Zeitfunktionen unter CPP: http://www.willemer.de/informatik/cpp/timelib.htm