C++/המרות: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
Ybungalobill (שיחה | תרומות)
Ybungalobill (שיחה | תרומות)
שורה 75:
 
== המרות טיפוסים של המתכנת ==
 
עד כאן הראינו כיצד לבטא ב-C++ את רצוננו להמיר טיפוס אחד לטיפוס אחר, אבל בפועל המרנו רק טיפוסים מובנים (מספרים, מצביעים). כנאמר כבר בספר זה, אחד הרעיונות בטמונים בשפת C++ הוא לתת אפשרות למתכנת ליצור טיפוסים אפקטיביים משלו שישתלבו כמו הטיפוסים המובנים. גם כאן נרצה להגדיר כיצד אנו רוצים להמיר בין [[w:מספר רציונלי|מספר רציונלי]] לבין מספר עם נקודה צפה, בין תאריך בפורמט שהגדרנו בפרק על מחלקות לבין טיפוס time_t של C וכד'.
 
כדי לבצע המרה, נוכל כמובן לכתוב פונקציה שתקבל ערך מטיפוס אחד, ותחזיר ערך מטיפוס אחר. לעיתים נרצה להגדיר המרה שתעבוד כמו המרות ה-implicit או ה-explicit המובנות.
 
=== בנאים ===
 
כל המרה היא יצירת ערך חדש על בסיס ערך קיים. הדרך הפשוטה שאתם כבר בטח ניחשתם (ואם תרגלתם את החומר בפרקים הקודמים אז כנראה כבר השתמשתם בה), היא כתיבת בנאי המאתחל את המופע של המחלקה באמצעות הפרמטר.
 
=== העמסת אופרטורים ===