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.