[בעיה] C++ (מחלקות ומרחבי שמות)
הערה מקדימה: אני עובד עם VC++ 2005.
ולבעיה:
יצרתי מחלקה String, שהממשק שלה מצוי ב-string.h והמימוש ב-string.cpp, כאשר string.cpp כולל את string.h וכנ"ל main.cpp, שהוא קובץ התוכנית עצמה. כל הקבצים נמצאים באותה תיקייה.
המחלקה משתמשת בטיפוס מוגדר (typedef), והבעיה היא שכאשר אני מגדיר את הטיפוס ב-string.cpp בלבד התוכנית לא עוברת הידור כי string.h לא מכיר את הטיפוס, והתוכנית עוברת הידור רק אם אני מגדיר את הטיפוס גם ב-main.cpp (הגדרת הטיפוס ב-string.h לא משפיעה כלל). אני לא רוצה להגדיר את הטיפוס בכל פעם שאני משתמש בספרייה.
ובעיה נוספת:
כאשר ניסיתי להכניס את ממשק המחלקה String שב-string.h למרחב שמות, והצהרתי ב-string.cpp שימוש במרחב שמות זה, התוכנית לא עברה הידור כי הפונקציות החברות של המחלקה String לא הורשו לגשת לאובייקטי String.
תודה רבה מראש =].
__________________
פיני: מקודד; מתכנת אתרים:
קוד:
HTML [XHTML], CSS, JavaScript, PHP, mySQL
|