A névtelen objektumokat nevezik temporális objektumnak?
Nem. A temporális objektum lehet akár névvel ellátott is, pl 2 objektum állapotának megcserélése esetében. (Csak gondolj arra hogy 2 váltózó értékét hogy kell megcserélni.)
Illetve névtelen objektum lehet nem temporális is. Pl ha egymásba vannak láncolva egy láncba, vagy fába vagy gráfba, akkor abban az adatszerkezetbe van egy csomó névtelen objektum.
Az első keveri a dolgokat. A temporális azt jelenti, hogy átmeneti, amikor írsz egy swap függvényt (vagy használod az std::swapot), akkor általában keletkezik egy átmeneti változó:
void swap(int& a, int& b)
{
int temp = a;
a = b;
b = temp;
}
Ekkor az első definíciója szerint temp egy átmeneti változó, és végülis igaza van, hiszen rövid ideig létezik. De a nyelv szemszögéből ez egy automatikus változó.
A nyelv azt nevezi temporálisnak, ami egy kifejezés részeként jön létre, és a kifejezés végeztével automatikusan megszűnik. Pl egy összeadás eredménye általában egy temporális változó.
A temporálisak névtelenek (lehet nekik nevet adni ha ráállítasz egy const referenciát), de vannak olyan névtelen objektumok, amik nem temporálisak: a dinamikusan allokáltak. Azoknak nincs neve.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!