Objekt array mit NULL initialisieren

11/26/2015 12:59 Slade100#1
hey leute,
habe eine Frage, ich habe eine Klasse cBewohner.
Jetzt soll ich die Klasse cDorf erstellen, hier die Aufgabe dazu.

"Legen Sie die Klasse "cDorf" an, die mit Hilfe des privaten Attributes "Bewohner" realisiert wird. "Bewohner" ist ein Array von Pointern von Objektn der Klasse "cBewohner". Es gibt maximal 10000 Bewohner, die im Standardkonstruktor mit der Konstanten "NULL" vorbesetzt werden, das heisst, zu Beginn ist das Dorf leer. Die Anzahl der Bewohner steht im Attribut Anz(public)

Code:
class cDorf{
	cBewohner* Bewohner;
public:
	int Anz;
	cDorf(){
                Anz = 0;
		Bewohner = new cBewohner[10000];
		for (int i = 0; i<10000; i++)	//ich weiß nicht wie ich hier auf die einzelenen Bewohner mit NULL vorbesetzten soll, egal was ich versuche gibt ein fehler raus
	}
};
11/26/2015 15:28 Padmak#2
Ich glaube eher, dass es so gemeint ist:
Code:
class cDorf{
    cBewohner* Bewohner[10000];
public:
    [...]
    cDorf() : Bewohner{NULL} {
    }
    [...]
}
Zumindest glaube ich dass das so passt, ansonsten musst du halt das Array wie bei dir durchgehen und auf NULL setzen.
Dein Array war nur einfach falsch definiert.

Padmak
11/26/2015 15:43 Slade100#3
danke erstmal, also das aus dem Text hatte ich auch erst so verstanden wie du, aber der private teil
Code:
 cBewohner* Bewohner;
war schon gegeben also soll das schon so sein. das mit dem array durchgehen habe ich folgende Methoden probiert
Code:
Bewohner[i] = NULL;
und
Code:
&Bewohner[i] = NULL;
und
Code:
Bewohner+i*sizeof(cBewohner)= NULL;
aber nix hat geklappt^^
11/26/2015 15:49 Padrio#4
Ich bin kein C++ experte aber das müsste gehen:

Code:
Bewohner[i] = nullptr;
11/26/2015 23:12 Slade100#5
danke aber klappt nicht^^
11/27/2015 22:37 Logtetsch#6
So hab ich die Aufgabenstellung verstanden und entsprechend realisiert:

Code:
const unsigned int MAX_BEWOHNER_COUNT = 10000;

class cDorf
{
private:
	int m_bewohnerAnzahl;
	cBewohner* m_bewohner[MAX_BEWOHNER_COUNT];
	
public:
	
	cDorf()
	{
		m_bewohnerAnzahl = 0;
		
		for(int i = 0; i < MAX_BEWOHNER_COUNT; i++)
			m_bewohner[i] = nullptr; //NULL
		
	}
}