na vježbama smo vidjeli kako se radi inicijalizacija [b]jedne[/b] strukture ugniježđene u drugoj strukturi preko konstruktora. što ako imamo dvije strukture (ili čak više struktura) koje želimo inicijalizirati preko konstruktora, pri čemu su sve te strukture u jednoj većoj?
evo, to je pitanje, a evo i ilustracije. npr. imam strukturu [tt]vanjska[/tt] i u njoj strukturu [tt]unutarnja[/tt].
[code:1]struct vanjska{
struct unutarnja{
int broj;
unutarnja(int x){broj = x;} //konstruktor za unutarnji struct
};
unutarnja U;
double broj2;
//konstruktor za vanjski struct:
vanjska(double br2, int br) : U(br){
broj2 = br2;
}
};[/code:1]
ovdje je ključna linija
[code:1]vanjska(double br2, int br) : U(br){...[/code:1]
jer tako konstruktor pristupa konstruktoru od pod-strukture.
ako sada u [tt]main[/tt]u napisem
[code:1]vanjska V(7.4, 8);[/code:1]
onda ce biti [tt]V.broj2 = 7.4, V.U.broj = 8[/tt]
ali sada imam dvije podstrukture, [tt]unutarnja1[/tt] i [tt]unutarnja2[/tt], svaka sa svojim konstruktorom:
[code:1]struct vanjska{
struct unutarnja1{
int broj;
unutarnja1(int x){broj = x;} //konstruktor za 1. unutarnji struct
};
unutarnja1 U1;
struct unutarnja2{
char znak;
unutarnja2(char c){znak = c;} //konstruktor za 2. unutarnji struct
};
unutarnja2 U2;
double broj2;
//konstruktor za vanjski struct:
vanjska(double br2, int br, char zn) NESTO { ... }
};[/code:1]
dakle, što mora pisati umjesto [tt]NESTO[/tt] da bi u [tt]main[/tt]u, nakon deklaracije
[code:1]vanjska V(7.4, 8, 'g');[/code:1]
vrijedilo [tt]V.broj2 = 7.4, V.U1.broj = 8, V.U2.znak = 'g'[/tt] ?
zahvaljujem :D
na vježbama smo vidjeli kako se radi inicijalizacija jedne strukture ugniježđene u drugoj strukturi preko konstruktora. što ako imamo dvije strukture (ili čak više struktura) koje želimo inicijalizirati preko konstruktora, pri čemu su sve te strukture u jednoj većoj?
evo, to je pitanje, a evo i ilustracije. npr. imam strukturu vanjska i u njoj strukturu unutarnja.
Kod: | struct vanjska{
struct unutarnja{
int broj;
unutarnja(int x){broj = x;} //konstruktor za unutarnji struct
};
unutarnja U;
double broj2;
//konstruktor za vanjski struct:
vanjska(double br2, int br) : U(br){
broj2 = br2;
}
}; |
ovdje je ključna linija
Kod: | vanjska(double br2, int br) : U(br){... |
jer tako konstruktor pristupa konstruktoru od pod-strukture.
ako sada u mainu napisem
onda ce biti V.broj2 = 7.4, V.U.broj = 8
ali sada imam dvije podstrukture, unutarnja1 i unutarnja2, svaka sa svojim konstruktorom:
Kod: | struct vanjska{
struct unutarnja1{
int broj;
unutarnja1(int x){broj = x;} //konstruktor za 1. unutarnji struct
};
unutarnja1 U1;
struct unutarnja2{
char znak;
unutarnja2(char c){znak = c;} //konstruktor za 2. unutarnji struct
};
unutarnja2 U2;
double broj2;
//konstruktor za vanjski struct:
vanjska(double br2, int br, char zn) NESTO { ... }
}; |
dakle, što mora pisati umjesto NESTO da bi u mainu, nakon deklaracije
Kod: | vanjska V(7.4, 8, 'g'); |
vrijedilo V.broj2 = 7.4, V.U1.broj = 8, V.U2.znak = 'g' ?
zahvaljujem
|