Dočasné objekty - v programování objekty, které kompilátor vytváří automaticky při vyhodnocování výrazů . Takové předměty nemají jméno a jsou zničeny, jakmile už nejsou potřeba.
Jazyk C++ pro ně volá konstruktory (podle potřeby) a destruktory (po provedení výrazu). To je důležité například pro objekt string_view C++17 .
Při inicializaci polí C++ dočasný objekt zmizí před inicializací dalšího prvku.
Tento kód funguje takto ( ctor - konstruktor , dtor - destruktor ).
řetězec r , tmp1 , tmp2 , tmp3 ; tmp1 . ctor ( "1" ); tmp2 . ctor (); tmp2 = tmp1 + "2" ; tmp3 . herec (); tmp3 = tmp2 + "3" ; r . ctor ( tmp3 ); tmp3 . dtor (); tmp2 . dtor (); tmp1 . dtor ();C++ zaručuje, že dočasný řetězec bude zničen později než ty , které na něm „parazitují“, „materializují“ do jiného, stejně dočasného řetězce . expandFileName(someFile)wstring_viewstd::wstring(...)
Téměř všechny jazyky (kromě většiny nízkoúrovňových) jsou schopny automaticky vytvářet dočasné proměnné pro mezivýsledky jednoduchých typů ( celé číslo , zlomek , ukazatel ). Mnoho jazyků ( Pascal ) má podobný systém pro řetězce . Téměř všechny programovací jazyky ( C# , Java ) produkují mezivýsledky jakéhokoli typu - koneckonců pro ně není žádný rozdíl mezi trvalým a dočasným objektem. Pouze C++ je schopen automaticky vytvářet mezilehlé objekty libovolných typů voláním jejich konstruktoru a destruktoru.