14-06-2007, 20:28
|
|
|
חבר מתאריך: 13.07.06
הודעות: 1,070
|
|
זה מובן וברור, כי ההכללה סוייגה: "כשאתה מעביר פרמטרים __מטיפוסים שאינם פרימיטיביים__"
למה? מיותר מסיבה אחת: - זה מבזבז זיכרון.
- זה מבזבז זמן עיבוד.
אלה הם דברים ברורים להחריד. קיימת עוד סיבה: - יש אובייקטים שאסור להעתיק.
לדוגמה: אם מעבירים אובייקט מטיפוס Thread כפרמטר לפונקציה שעושה לו משהו (בווינדוס לדוגמה, זה תקף בעצם לכל אובייקט קרנל, לחלונות, וכו'); exceptions בדרך כלל אסור להעתיק, ולכן צריך לתפוס אותם כ-const-reference, וכו'.
המצב ברור: שימוש ב-const-reference כשמעבירים פרמטר מטיפוס שאינו פרימיטיבי ולא מתכוונים לשנות נותן שני יתרונות תמיד, ויתרון שלישי וחשוב מאוד במקרים רבים (מסדיר את אופן הכתיבה של הקוד, וזה הופך ליתרון תמיד), ואין לו שום חסרונות. לכן, תמיד צריך לעשות כך.
בכפוף לתנאי התקנון הנמצאים במשרדי החברה.
_____________________________________
סאשה הסוס, סוכן אוסינט.
|