Sobes.tech
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.