Návratová hodnota členské metody – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Návratová hodnota členské metody – C / C++ – Fórum – Programujte.comNávratová hodnota členské metody – C / C++ – Fórum – Programujte.com

 

Miroslav Kajan0
Věrný člen
29. 11. 2006   #1
-
0
-

Proč nejde dosadit v návratové hodnotě funkce Vypis pole[j]?

class Trida

{
public:
Trida(){}
~Trida(){}
int Zapis();
private:
int *pole;
};

int Trida::Zapis()
{
for (int j=0; j<5; j++)
pole[j]=j+2;
return pole[1];
}

int main()
{
Trida a;
int vysledek = a.Zapis();
cout << vysledek;
cin.get();
return 0;
}

Nahlásit jako SPAM
IP: ...–
Zápisky z dění na FB (momentálně ve vývoji): http://fbpd.ic.cz/
eMan0
Stálý člen
29. 11. 2006   #2
-
0
-

Jde. Takle to mas deklarovanz jenom jako ukazatel. Musis jsi to pole alokovat za pomoci operatoru new.
Takze :

int *pole = new int;
takhle bz to fungovalo jako promena ( pole=8; )
delete pole;

int *pole = new int [5];
talhle jako pole (pole[0]=5;)
delete [] pole;

dulezite taky pouzit delete !!!.

Nahlásit jako SPAM
IP: ...–
Miroslav Kajan0
Věrný člen
29. 11. 2006   #3
-
0
-

To eMan: Kde ho mám alokovat?

Nahlásit jako SPAM
IP: ...–
Zápisky z dění na FB (momentálně ve vývoji): http://fbpd.ic.cz/
eMan0
Stálý člen
29. 11. 2006   #4
-
0
-

těžko říct, záleží co právě děláš za aplikaci. Někdy v construktoru, někdy ve funkci...takhle se to nedá řešit, musíš se obecně podívat na dynamickou alokaci paměti v C++ za pomocí operátoru new. Najdi jsi někde na netu článek(možná i tady na prg)..

takhle by to fungovalo, ale resit bz se to takhle nemelo :

class Trida
{
public:
Trida(){}
~Trida(){}
int Zapis();
private:
int *pole;
};

int Trida::Zapis()
{
int ret;
pole = new int [5]; // alokovanych 5 pamet. mist
for (int j=0; j<5; j++)
pole[j]=j+2;

ret = pole[1];
delete [] pole;
return ret;
}

int main()
{
Trida a;
int vysledek = a.Zapis();
cout << vysledek;
cin.get();
return 0;
}

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

Podobná vlákna

Návratová hodnota — založil Luckaa

Návratová hodnota — založil RePRO

Návratová hodnota z vlákna — založil Filip0913

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ý