Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem C++ Alokacia a dealokacia pamati

MM:

Vdaka za odpovede ale mam v tom este vacsi gulas. Pisal si ze ten treti zapis je zly, ale spravil som si testovaciu applikaciu a ono mi to funguje:

#include <iostream>
#include <cstring>

using namespace std;

class Trieda
{
public:
	void Metoda(wstring input)
	{
		wcout << input.c_str() << endl;
	}
};


void main()
{
	auto objekt1 = Trieda(); // ekvivalent Trieda objekt;
	objekt1.Metoda(L"Objekt alokovaný na stacku");
	auto objekt2 = new Trieda();
	objekt2->Metoda(L"Objekt alokovaný na heape");
	auto objekt3 = &Trieda();
	objekt3->Metoda(L"Objekt alokovaný na ???");
	system("pause");
}
Akurat som sa mylil v tom ze ten treti zapis je eqvivalentny tomu druhemu. Nie je podla vsetkeho sa asi vytvara na stacku a do premennnej sa uklada referencia na tento objekt.

Viem co znamena auto je to keyword z C++ 11 pouziva sa pri type inference to iste ako keyword var v C#, v tomto pripade na sprehladnenie zdrojaku. Viem ze takyto zdojak nebude kompatibilny so starsimi verziami C++ ale ja uz kompatibilitu so starsimi verziami ani neriesim chcem sa naucit novy standard so vsetkymi featurami ako lambdy atd.

a o shared pointeroch sa pise napriklad tu: http://babel.blog.root.cz/2012/04/11/sprava-pameti -v-c/ vraj sa pri ich pouziti nemusim starat o uvolnovanie pamate, pretoze sa pouzije pocitadlo referencii.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny