C++/המרות: הבדלים בין גרסאות בדף
תוכן שנמחק תוכן שנוסף
Ybungalobill (שיחה | תרומות) דף חדש: {{C++}} {{בעבודה}} שפת C++ היא בעלת טיפוסיות חזקה (Strongly-typed), משמע הדבר שהמהדר אוסר עלינו להמיר בין טיפוסים רב... |
Ybungalobill (שיחה | תרומות) ←המרת טיפוסים: עידכון |
||
שורה 10:
=== סגנון C ===
כדי להמיר ערך x מטיפוס A לטיפוס B נרשום לפני ה-x את שם הטיפוס
<source lang="cpp">
int *p = (int*)malloc(sizeof(int));
שורה 19:
=== סגנון קריאה לפונקציה ===
כאשר נוספו לC++ הבנאים, נוספה האפשרות ליצור אובייקט זמני חסר שם בצורה הבאה:
<source lang="cpp">
complex foo = complex(1,2) + complex(2,3);
</source>
בדוגמה זו נוצרים שני אובייקטים זמניים מטיפוס complex ומאותחלים על ידי קריאה לבנאי מתאים. שני האובייקטים הזמניים מחוברים ונשמרים במשתנה בעל שם foo.
סגנון כתיבה זה, פירושו: "צור אובייקט מטיפוס B ואתחל באמצעות הפרמטרים הניתנים". כאשר יש לנו פרמטר אחד מטיפוס A נוכל להתיחס לפעולה זו כלהמרה של A ל-B:
<source lang="cpp">
A x = f();
B y = B(x);
</source>
שימו לב שלא כל כתיבה כזו היא קריאה לבנאי. יתכן שאין בנאי מתאים אך מועמס אופרטור המרה מתאים, כמו כן לטיפוסים המובנים אין בנאים:
<source lang="cpp">
int a = int(1.23456789);
</source>
=== אופרטורי ה-cast ===
ארבעת אופרטורים הללו הינם חידוש משמעותי בשפה.
* '''const_cast'''
* '''reinterpret_cast'''
* '''static_cast'''
* '''dynamic_cast'''
== המרות טיפוסים של המתכנת ==
|