Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Da li bi neko mogo da mi pojasni UNIJE u C++?

[es] :: C/C++ programiranje :: C/C++ za početnike :: Da li bi neko mogo da mi pojasni UNIJE u C++?

[ Pregleda: 4194 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vladaboy93
Vladimir Makaric
Novi Sad

Član broj: 137777
Poruke: 376
*.181.eunet.yu.

Sajt: vladimirmakaric.110mb.com


Profil

icon Da li bi neko mogo da mi pojasni UNIJE u C++?12.08.2007. u 18:58 - pre 203 meseci
Nije mi jasna ni svrha ni koriscenje?
 
Odgovor na temu

1jedini
Dejan Milosavljevic
BG

Član broj: 102721
Poruke: 74
*.dynamic.sbb.co.yu.



Profil

icon Re: Da li bi neko mogo da mi pojasni UNIJE u C++?13.08.2007. u 09:39 - pre 203 meseci
Npr :

Kolicina memorije je kriticna a hoces da radis sa podacima promenjivog tipa
Code:

struct Podatak
 {
  int type;
  union 
   {
    int i;
    float f;
   }p;
 };

Podatak pi, pf;
pi.type =0;  pi.p.i =123;  
pf.type =1;  pf.p.f =0.123;  



Da na dva razlicita nacina pristupis istim podacima:

Code:

union Boja
 {
  unsigned char a[3];
  struct
   {
    unsigned char r;
    unsigned char g;
    unsigned char b;
  }
 };

Boja b;

b.a[0] = 10;
b.r = 15;


Ako sam negde pogresio u sintaksi, to se da lako ispraviti

AKA DDMM
 
Odgovor na temu

prog
Bihac

Član broj: 106882
Poruke: 77
*.PPPoE-1718.sa.bih.net.ba.



Profil

icon Re: Da li bi neko mogo da mi pojasni UNIJE u C++?13.08.2007. u 18:08 - pre 203 meseci
- Unija je korisnicki tip podataka (kao i klasa samo u ogranicavajucoj formi), te u svakom momentu sadrži samo
jedan objekt iz liste njenih clanova.

- Ona se koristi kada zelimo imati neki tip koji kada ga jednom deklarišemo moze biti razlicit u svakom momentu.

- Velicina tipa unije iznosi onoliko koliko iznosi njen najveći član.

NPR:
Code:

union DATATYPE    // Deklaracija tipa unije
{
   char   ch;
   int    i;
   long   l;
   float  f;
   double d;
} ;

uniju deklarisemo :
Code:

DATATYPE varijabla1; 


Uniji kada zelimo pridruziti neku vrijednost ona moze biti bilo kojeg tipa njenih članova,
tj. moze biti bilo kojeg tipa koji su gore navedeni, char, int, long,float,double.

NPR:
Code:

varijabla1.i=15;
u ovom slucaju unija je tipa int.

Medjutim mozemo pisati:

Code:
 varijabla1.d=4.567;
, sada je unija tipa double.
Kada smo uniji pridruzili vrijednost 4.567,
tada vise unija ne sadrzi vrijednost varijabla1.i=15.
 
Odgovor na temu

vladaboy93
Vladimir Makaric
Novi Sad

Član broj: 137777
Poruke: 376
*.91.eunet.yu.

Sajt: vladimirmakaric.110mb.com


Profil

icon Re: Da li bi neko mogo da mi pojasni UNIJE u C++?13.08.2007. u 19:44 - pre 203 meseci
Zanimljivo...

Sve mi je jasno puno vam hvala!!!
 
Odgovor na temu

DjoleReject
Djordje Knezevic
Zvezdara

Član broj: 85258
Poruke: 309
*.dynamic.sbb.co.yu.



+1 Profil

icon Re: Da li bi neko mogo da mi pojasni UNIJE u C++?05.09.2007. u 12:46 - pre 202 meseci
Cisto da pomenem jednu stvar koju sam tek nedavno saznao: Ni jedan member unije ne sme imati default konstruktor ili assignment operator (operator = ). Smarala me greska dugo, nisam imao pojma zasto, a onda izguglam error i nadjem na MSDNu ovu cinjenicu.
Da li bi neko mogao objasniti cemu sluzi ovakvo pravilo u samom jeziku. To jest, sa teoretske strane, sta bi falilo da mozes praviti objekte kako ti hoces?
De si Deda...
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.plus.com.



+4 Profil

icon Re: Da li bi neko mogo da mi pojasni UNIJE u C++?05.09.2007. u 20:45 - pre 202 meseci
Zato shto tako kazhe The Holy Standard:
Citat:
An object of a class with a non-trivial constructor (class.ctor), a non-trivial copy constructor (class.copy), a non-trivial destructor (class.dtor), or a non-trivial copy assignment operator (over.ass, class.copy) cannot be a member of a union, nor can an array of such objects."



Narodski recheno: samo POD mozhe da bude chlan unije. Ako bi chlan imao konstruktor ne bi mogao da garantujesh shta ce se desiti u memoriji tokom konstrukcije tih objekata zato shto se svi ti objekti preklapaju i konstruktor jednog objekta pri promeni sopstvenog stanja bi nenamerno promenio i stanje ostalih objekata koji dele to parche memorije, i tako u krug. Zamisli horor kada bi npr. vftp-ovi takvih klasa preklopili...
 
Odgovor na temu

Nikolas_bg
Beograd

Član broj: 156367
Poruke: 45
77.46.234.*



+2 Profil

icon Re: Da li bi neko mogo da mi pojasni UNIJE u C++?10.09.2007. u 10:02 - pre 202 meseci
Jel moze neko da postavi neki primer , gde se unije primenjuju ???
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Da li bi neko mogo da mi pojasni UNIJE u C++?

[ Pregleda: 4194 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.