Portál AbcLinuxu, 11. května 2025 04:06
Prosím o odpověď na začátečnický dotaz. Už se s tím mořím docela dlouho a nemůžu na to přijít. Mějme ukázkový kód:
#include <iostream> int *glob; int &pokus(){ } int main(){ glob=new int; *glob=1; std::cout<<*glob< }
Potřeboval bych napsat kód funkce pokus() tak aby vracela referenci na glob; V programu, co píšu, je to samozřejmě komplikovanější a zabalené do třídy, ale překladač na mne furt řve, že se nedá přetypovat *int na &int. Moje chápání bylo, že &int v podstatě je konstantní verze *intu, ne ?
s díky za odpovědi Georgius
Jsem blbej, prosím o smazání dotazu. Odpověď samožřejmě JE taková jakou jsem psal ale z nějakého důvodu to nechodilo.
int &pokus(){return *glob;}
int *glob; //vraci hodnotu na kterou ukazuje glob int pokus() { return glob; }
//vraci referenci na hodnotu na kterou ukazuje glob (reference na int) int &pokus() { return *glob; } //vraci konstantni referenci ... const int &pokus() { return *glob; }
//vraci [konstantni] referenci na glob (reference na pointer na int) (vazne chcete toto?) [const] int* &pokus() { return glob; } //vraci hodnotu glob (pointer na int) int *pokus() { return glob; }
Ty uz to nehul ani redeny DD
minimalne dve jsou hovadiny
Ted jsem si vsimnul. V tom prvnim se nekam ztratila hvezdicka :-/
Ale te druhe hovadiny si porad nejak nejsem vedom.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.