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.