Sobes.tech
Junior

C/C++-də göstəricilər yerinə dəyər ötürməyin alternativ adı nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Dəyəri, sabit obyektlərə istinadlar istifadə etməklə ötürmə.

void process_value(const MyObject& obj) {
    // obj ilə işləyirik, sanki dəyər kimi ötürülmüşdür
    // (dəyişikliklər mümkün deyil, const sayəsində),
    // lakin böyük obyektin kopyalanmasından qaçınırıq.
    // Bu funksiya obj-ə istinad edən obyektin vəziyyətini DƏYİŞƏ BİLMƏZ.
}

// İstifadə nümunəsi:
MyObject large_object;
process_value(large_object); // large_object kopyalanmır

Dəyərə nisbətən üstünlüklər:

  • Böyük obyektlərin bahalı kopyalanmasını qarşısını alır, performansı yaxşılaşdırır.
  • Funksiya daxilində dəyişməzlik baxımından dəyər ilə ötürmə semantikasını saxlayır.

Çatışmazlıqlar:

  • Xüsusi const & sintaksisi tələb edir funksiyanın imzasında.
  • Əgər obyekt çox kiçikdirsə (məsələn, primitiv tip int), dəyər ilə ötürmə, referansın dereferensiyası ilə əlaqəli potensial əlavə xərclər səbəbindən daha sürətli ola bilər.