מהו קובץ HH?
קובץ עם סיומת .hh הוא קובץ כותרת C++ הכולל הצהרת משתנים, קבועים ופונקציות. הצהרות אלה משמשות את קבצי היישום המתאימים של C++, שנשמרים בדרך כלל כקבצי .cpp המכילים את היישום בפועל של לוגיקת המשתמש. קובצי ה-.hh כותרות מופנים בקובצי ה-CPP ליישום באמצעות ההנחיה ‘#include’. אתה יכול להוסיף כמה שיותר קובצי כותרות לפרויקט C++ שלך כדי לכלול הצהרות ברמת הפרויקט.
.HH פורמט קובץ
קובץ .hh הוא קובץ טקסט רגיל שנוצר תוך שמירה על כללי הגדרת קובץ הכותרת. המידע הנפוץ ביותר המוצהר בקובץ .hh כולל את הפרטים הבאים.
משתנים
- במקרה של תכנות מונחה עצמים (OOP), קובץ כותרת מחלקה מכיל הגדרות של כל משתני רמת המחלקה הנגישים בכל קובצי קוד המקור של היישום
הצהרת שיטות
- כל הצהרות השיטות נכללות בקבצי ה-.h header כדי להיות נגישים על פני מספר קובצי יישום.
הגדרות פונקציות שאינן מוטבעות
- קובצי כותרת יכולים להכיל גם הגדרות של מתודות שאינן מוטבעות.
מפות הודעות
- קובץ כותרת יכול להכיל גם מפות הודעות במקרה של יישום קוד מקור של MFC. במקרה כזה, מפות ההודעות מקושרות ליישום הפונקציונליות המקושר לרכיבי ממשק משתמש כגון כפתור, תיבת סימון, לחצני בחירה וכו’.
ההבדל בין קבצי .H ו-.HH
ככל הנראה, אין הבדל כזה בין קובצי הכותרת .h ו-.hh מלבד הדרך המומלצת להשתמש בהם עבור השפות המתאימות, כלומר C או C++. מתן שמות לקובצי הכותרות שלך לפי שפות אלו עוזר לך להבחין ביניהם בפרויקט גדול שיכול להיות שילוב של יישומי C ו-C++.
בנוסף, אם הכותרות מופרדות לפי הרחבה, העורך שלך יכול להחיל את העיצוב המתאים באופן אוטומטי עבור בהתאמה.
בסך הכל, ההבחנה בין שני פורמטים של קבצים אלה לא תגרום נזק, אבל תהיה יתרון, ומומלץ לעקוב אחר ההבחנה ב-C ו-C++.
מגני ראשים
קובצי כותרות יכולים להעלות שגיאות מורכבות כאשר מספר הצהרות נכללות באותו קובץ כתוצאה מהוספת קובצי כותרות אחרים. הגדרות כפולות אלו מעלות שגיאות מהדר. ניתן להימנע ממצב בעייתי זה באמצעות מנגנון הנקרא Header guard שהם הנחיות קומפילציה מותנית כפי שמוצג להלן.
#ifndef ANY_UNIQUE_NAME_HERE_HPP
#define ANY_UNIQUE_NAME_HERE_HPP
// your declarations (and certain types of definitions) here
#endif
עם כותרת זו, המעבד המקדים בודק אם ה- ANY_UNIQUE_NAME_HERE_HPP
כבר הוגדר. אם הכותרת נכללת שוב ושוב באותו קובץ, יתעלם מתוכן הכותרת.