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-Key: 128473

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

Printed on: April 23, 2024 at 14:04 o'clock

Member: gijoe
gijoe Nov 03, 2009 at 00:16:20 (UTC)
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?
Member: TsukiSan
TsukiSan Nov 03, 2009 at 02:46:59 (UTC)
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
Member: mrtux
mrtux Nov 03, 2009 at 05:35:05 (UTC)
Goto Top
Hi !

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

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

mrtux
Member: spreader
spreader Nov 03, 2009 at 10:17:13 (UTC)
Goto Top
Super hat funktioniert Danke TsukiSan!
Member: Guenni
Guenni Nov 03, 2009 at 20:49:58 (UTC)
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