... co pak to znamená ... – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

... co pak to znamená ... – C / C++ – Fórum – Programujte.com... co pak to znamená ... – C / C++ – Fórum – Programujte.com

 

KOudis
~ Anonymní uživatel
145 příspěvků
2. 4. 2010   #1
-
0
-

Ahoj ...
mám dotaz ohladně přátelských tříd s kombinací s operatorem + (operator+)..
mám knížku C++ za 21 dní a v ní je článek o"přátelské fce a přetěžování operátorů" (v souvislosti sčítání řetězců) ... v tomto článku autor píše třídy řetězec kde přežežuje operator + tak že může napsat



Retezec rRetezec("nazdar");
Retezec mRetezec(", mam se dobre");
Retezec vRetezec = rRetezec + mRetezec;

toto je v pořádku, přetížíme + aby "převzalo" oba objekty Retezec, "sečetlo" je dohromady a udělalo nový řeťezek který pak odkáže vRetezec.
Ted to co nechapu :)


char rRetezec={"nazdar"}; //zapis v stzlu C
Retezec mRetezec(", mam se dobre");
Retezec vRetezec = rRetezec + mRetezec;

v textu sese píše že pokud chceme takovéto řetězce "sečíst" musíme napsat tuto deklaraci


...
friend Retezec operator+(const Retezec&, const Retezec&);
...

co se přesně děje když zavolám rRetezec + mRetezec... rRetezec se nejak převeze na třídu Retezec .... nebo něco takového ??
díky za rady ...

Nahlásit jako SPAM
IP: 85.92.39.–
mephi0
Expert
3. 4. 2010   #2
-
0
-

nič zložite, zavola sa funkcia, ktoru si napíšeš.

a+b;
je len lepšie zapisane
operator+(a,b);

Nahlásit jako SPAM
IP: 147.32.89.–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
mephi0
Expert
3. 4. 2010   #3
-
0
-

... a prekladač dokáže zistiť, či daný parameter funkcie, nevie nejak pretipovať na vhodný tip. A to vie vďaka tomu konštruktoru, ktorý preberá char*

Nahlásit jako SPAM
IP: 147.32.89.–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
KOudis
~ Anonymní uživatel
145 příspěvků
3. 4. 2010   #4
-
0
-

aha .. takže překladač dokáže tahle pěkně vyhledávat a přetypovávar :) .. aůe a co je tam to přetížení definováno jako přátelská fce. ? aby byla dostupná v všech kontextech ??

Nahlásit jako SPAM
IP: 85.92.39.–
mephi0
Expert
3. 4. 2010   #5
-
0
-

Aby mala prístup k privatnym členom ;)
Len teraz je otazka ako je to s protected, to asi plati až pri dedičnosti.

Nahlásit jako SPAM
IP: 147.32.89.–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
koudiss
~ Anonymní uživatel
13 příspěvků
3. 4. 2010   #6
-
0
-

díky :) .. vubec jsem si nevšiml že to vlasně není členská třída ...

Nahlásit jako SPAM
IP: 85.92.39.–
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, 27 hostů

Podobná vlákna

Co znamená zkratka...? — založil Montezo

Co znamená return 8? — založil vanasi

Co znamená ICT koordinátor? — založil da11niel

Moderátoři diskuze

 

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