Problemet er at en klasses constructor initialiserer alle klassens variable inden den udfører nogen funktioner.
Så når du kommer til
notes = {50,100,200,500};
er notes allerede initialiseret - og {,,,}- metoden virker kun ved initialisering.
Den normale måde at komme uden om dette på er at bruge en initialiserings-liste i constructoren; a la
indhold::indhold():someInt(4){}
//Hvis du har en member kaldet int someInt
Desværre mener jeg ikke denne teknik virker for arrays.
En mulighed er at assigne hvert element for sig:
notes[0]=50;//osv
Dog ser det ud som om du altid vil give dit array de samme værdier (da din constructor ingen argumenter tager).
Hvis det er rigtigt kan du gøre din notes static, og initialisere den uden for klassen:
class indhold
{
public:
indhold();
private:
static int notes[4];
};
indhold::indhold(){}
int indhold::notes[] = {50,100,200,500};
int main()
{
indhold test;
return 0;
};
static variable bliver ikke initialiseret af klassens constructor, men en gang for alle ved programmets start. Men du skal så være opmærksom på at hvis du ændrer i notes vil det påvirke alle indhold objekter i dit program.
Indlæg senest redigeret d. 09.10.2008 13:48 af Bruger #8249