Junior
Hogyan nevezik az alternatívát a C/C++-ban a érték átadására a hivatkozások helyett?
sobes.tech MI
Válasz az MI-től
Értékátadás konstans objektumokra mutató hivatkozások használatával.
void process_value(const MyObject& obj) {
// obj-vel úgy dolgozunk, mintha érték szerint adták volna át
// (a változtatások lehetetlenek a const miatt),
// de elkerüljük egy nagy objektum másolását.
// Ez a függvény NEM TUDja megváltoztatni az obj által hivatkozott objektum állapotát.
}
// Használati példa:
MyObject large_object;
process_value(large_object); // large_object nem kerül másolásra
Előnyök az érték szerinti átadáshoz képest:
- Költséges nagy objektumok másolásának elkerülése, ami javítja a teljesítményt.
- Megőrzi az érték szerinti átadás szempontjából az immutabilitás szempontjából a szemináriumot.
Hátrányok az érték szerinti átadáshoz képest:
- Külön szintaxis
const &szükséges a függvény aláírásában. - Ha az objektum nagyon kicsi (pl. primitív típus
int), az érték szerinti átadás gyorsabb lehet a referencia dereferálási költségei miatt.