#13 Mrcrywolf
V C reference neexistujou, je tam jen ziskani adresy a predani pointeru.
V C++ jde udelat reference primo:
void prohod(int & ref1, int & ref2)
{
int tmp = ref1;
ref1 = ref2;
ref2 = tmp;
}
// volani je pak:
int a = 19;
int b = 20;
prohod(a,b);
Dost se take pouziva konstantni reference, ktera zabranuje zbytecnym kopiim ruznych objektu:
void neco(std::string const& retezec)
{
// retezec nelze menit, ale urcite se nebude kopirovat
}
// volani:
std::string test{"nejaky retezec"};
neco(test);
// nicmene lze pouzit i implicitni konverze a zadat retezec primo:
neco("nejaky retezec"); // u reference bez modifikatoru const toto nemuze projit
No a v C bys proste musel predat pointer. Plus kontrolovat, jestli ti nekdo z venku neposila null pointer.
Ucitel veteran, takze pri trose smuly jeste programujete v Turbo C z roku 94 (jako vetsina Indie). V te dobe bylo C++ opravdu jen rozsireni C. V soucasnosti je to proste uplne jiny jazyk, ve kterem se za jistych omezeni da zkompilovat i C program. Ted je C++ "rozsirene C" asi jako "Java je vyklesteny C++" coz puvodne opravdu byla. Ted se do ni ale vraci veci, co C++ ma od zacatku.