Article View: pl.comp.objects
Article #4612Re: Referencje (Re: Prawda o C++)
From: Sektor van Skijlen
Date: Tue, 19 Jan 1999 12:35
Date: Tue, 19 Jan 1999 12:35
63 lines
3046 bytes
3046 bytes
W ostatnim odcinku, Adam Karpierz naskrobal:
: 2. Chec ujednolicenia zapisow poprzez unikniecie koszmaru mieszania
: operatorow -> i .
: Prywatnie analiza i pamietanie konstukcji typu
: aaa->bbb.ccc->.ddd->eee.fff.ggg->
: i ciagle z tym pomylki zeraja mi mnostwo czasu
: (ze o nerwach i czytelnosci juz nie wspomne).
Jest mozliwe w przypadku utworzenia referencji PO inicjalizacji wskaznika. Nie
zapominaj, ze w C++ zmienne mozesz tworzyc w DOWOLNYM momencie.
: 3. chec korzystania z konstrukcji np. typu:
: /neistety (w ogolnosci) nie do zrealizowania w C++/.
: Klasa & ref;
: ...
: ref = (cos tam) ? obiekt1 : obiekt2;
: ...
: ref.metoda1();
: ref.metoda2();
: itp..
Czyzby niemozliwe ? A probowales tak:
Klasa& ref( (cos tam) ? obiekt1 : obiekt2 ); ?
: zamiast:
: Klasa * ptr;
: ...
: ptr = (cos tam) ? &obiekt1 : &obiekt2;
: ...
: ptr->metoda1();
: ptr->metoda2();
: itp..
: No bo i po coz wykonywac adresowanie ?
: Po co ono tu potrzebne ?.
Zgadzam sie. Dlatego staram sie uzywac referencji najczesciej na ile to
mozliwe. Ostatnio, ze wzgledu na to, ze musialem zrobic klase, ktora stanowi
"opakowanie" dla innego obiektu (opakowanie zapewnia umieszczanie w liscie),
zawiera ona wskaznik na wlasciwa strukture, totez jest tzw. inteligentnym
wskaznikiem. Glupio by wiec bylo tworzyc wskaznik do tej struktury, bo wtedy
musialbym tego uzywac tak:
BlockBox* block = new BlockBox( nr, at );
...
cerr << filename << ":" << (*block)->nr << ":" << ...
Dlatego uzywam tak:
BlockBox& block = *new BlockBox( nr, at );
...
cerr << filename << ":" << block->nr << ":" << ...
--
-=* P O Z D R A W I A M ! *=-
[-=* Ij waiet salden mijn spijr, ta faenen aire ats trauven diaenna *=-]
____....----````Sektor van Skijlen: sektor at beer.com''''----....____
<sPAm @ pROtEctIOn>
Technical Details
Message-ID:
<781u6q$9l8$2@polonez.man.lodz.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.nask.pl!news.icm.edu.pl!news.task.gda.pl!news.man.lodz.pl!not-for-mailReferences:
<77o3bl$j0q$1@polonez.man.lodz.pl> <77qk38$ken$1@zeus.polsl.gliwice.pl> <Pine.LNX.4.05.9901161958290.396-100000@qrnik.knm.org.pl> <36a27542.0@news3.ibm.net> <Pine.LNX.4.05.9901180659020.6379-100000@qrnik.knm.org.pl> <77upi3$saj$1@zeus.polsl.gliwice.pl> <Pine.LNX.4.05.9901181049150.351-100000@qrnik.knm.org.pl> <36A34000.764E7B8@interdata.com.pl> <77vjok$7aj$1@h1.uw.edu.pl> <36A361A1.69764717@interdata.com.pl> <36A3650C.F430914E@sympatico.ca> <781dfs$9bn$1@zeus.polsl.gliwice.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.nask.pl!news.icm.edu.pl!news.task.gda.pl!news.man.lodz.pl!not-for-mail
From: Sektor van Skijlen <sektor@spam.org>
Newsgroups: pl.comp.objects
Subject: Re: Referencje (Re: Prawda o C++)
Date: 19 Jan 1999 12:35:38 GMT
Lines: 63
Message-ID: <781u6q$9l8$2@polonez.man.lodz.pl>
References: <77o3bl$j0q$1@polonez.man.lodz.pl> <77qk38$ken$1@zeus.polsl.gliwice.pl> <Pine.LNX.4.05.9901161958290.396-100000@qrnik.knm.org.pl> <36a27542.0@news3.ibm.net> <Pine.LNX.4.05.9901180659020.6379-100000@qrnik.knm.org.pl> <77upi3$saj$1@zeus.polsl.gliwice.pl> <Pine.LNX.4.05.9901181049150.351-100000@qrnik.knm.org.pl> <36A34000.764E7B8@interdata.com.pl> <77vjok$7aj$1@h1.uw.edu.pl> <36A361A1.69764717@interdata.com.pl> <36A3650C.F430914E@sympatico.ca> <781dfs$9bn$1@zeus.polsl.gliwice.pl>
NNTP-Posting-Host: zly.kis.p.lodz.pl
User-Agent: tin/pre-1.4-981225 ("Volcane") (UNIX) (SunOS/5.5.1 (i86pc))
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit