C++
ידועה בתור שפה שניתן לאתחל ערכים בעשרות דרכים.
אחת מהן שהוסיפו בגרסא ה-20 היא ה- Aggregate Initialization
, “אתחול מצטבר”.
דרך אתחול נפוצה היא להשתמש ב- { }
.
1 | struct Person |
זה מתאחל את המבנה עם שם וגיל - שימו לב שלא יצרנו שום בנאי!
הבנאי נוצר עם סדר המשתנים כפי שהם מופיעים במבנה - זו הסיבה שאם אנחנו משנים את סדר המשתנים גם הסדר בבנאי יישתנה.
כדי להוריד את הסיכוי לבאגים וליצור קוד יותר ברור, בגרסה 20 של cpp
הוסיפו צורה חדשה בעזרת שמות:
1 | Person folder { .Name = "Bob", .Age = 6 }; |
כעת נוכל להשתמש בשמות כדי ליצור בצורה חד משמעית את המבנה.
במיוחד כאשר יש לנו מבנים שהם פחות נוחים לשימוש:
1 | struct Configuration |
עבור מתכנתי C#
, בטח כבר זכרתם שזה קיים בשפה בזכות מאפיינים:
1 | public class Person |
ב-cpp
לא מאופיין להשתמש במאפיינים.
זו דוגמא פחות טובה:
1 | class Person |
עדיף להשתמש ב-const value
:
1 | struct Person |
C++ 20
מביאה איתה מלא חידושים!
התכונה הזו נראת קטנה אבל אתחול אינדיקטיבי ייעזור לנו למנוע באגים באתחול שגוי!
תודה על הקריאה!