Vracení odkazu na objekt – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Vracení odkazu na objekt – C / C++ – Fórum – Programujte.comVracení odkazu na objekt – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
x-time0
Newbie
28. 1. 2008   #1
-
0
-

Zdar, tak tu píšu znova, páč jsem zjistil, že furt nic nevím .. :-D
Jsem se chtěl zeptat, jak funguje tato část třídy, už to tu sice píšu podruhé, ale asi jste nevěděli co mi není jasné, tak doufám, že už to bude zřetelnější :-) :



class Citac
{
public:
Citac & operator++() {++ hondnota;return *this;}
private:
int hodnota;
};


1. Na co se vytvoří odkaz ?
2. Proč musí být *this a nejde napsat this bez pointru ?

Díky za odpovědi :-)

Nahlásit jako SPAM
IP: 80.251.249.–
Reklama
Reklama
tmi0
Věrný člen
28. 1. 2008   #2
-
0
-

1)vytvori se reference na instanci pro kterou si pouzil postfixovou verzi operatoru ++.
2)pokud bys this napsal bez *, vracel by si adresu objektu, coz neni reference.

Nahlásit jako SPAM
IP: 89.185.230.–
ksp.mff.cuni.cz -- doporučuje 5 z 0 přetečených bufferů!
x-time0
Newbie
28. 1. 2008   #3
-
0
-

To tmi : Takže Reference je to same jako odkaz.. ? Jestli to dobře chápu, tak když si vytvořím objekt A, tak se mi na objekt A vytvoří reference do které se přiřadí tělo funkce operator++ teda tohle: ++ hondnota;return *this; a dělá se to referencí kvuli rychlosti že? Jestli jo, tak diky moc :-)

Nahlásit jako SPAM
IP: 80.251.249.–
tmi0
Věrný člen
28. 1. 2008   #4
-
0
-

reference byva (vetsinou) jen zakryty ukazatel. muzes tomu rikat klidne odkaz, prakticky to pro tebe znamena to ze kdyz zmenis hodnotu reference, zmenis i hodnotu originalniho objektu. (a take ze kdyz pouzijes pomocny objekt k inicializaci reference, ten objekt nezanikne po dobu trvani reference, ale myslim ze to te jeste moc nezajima)).

ale do reference se nepriradi zadne telo funkce. tu referenci ta funkce vrati.

ne, to ze se vraci reference je proto aby se daly retezit operatory, tedy abys mohl napsat: A++ = 4; //ackoli zrovna tenhle pripad moc smyslu nedava, nejlogictejsi to byva u operatoru prirazeni nebo >>/<<.

Nahlásit jako SPAM
IP: 89.185.230.–
ksp.mff.cuni.cz -- doporučuje 5 z 0 přetečených bufferů!
x-time0
Newbie
29. 1. 2008   #5
-
0
-

:-) se ještě na to podívám, jinak diky

Nahlásit jako SPAM
IP: 91.187.34.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 72 hostů

Podobná vlákna

Metoda equals (porovnání odkazů na objekt) — založil Začátečník11

Vrácení pole — založil Janek

Vrácení hodnoty ve funkci — založil Kuba-$

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý