
24-09-2007, 15:24
|
|
|
|
חבר מתאריך: 30.07.05
הודעות: 949
|
|
השימוש שלך ברשימת האיתחול הוא פשוט לא נכון...
כעקרון, השורה הבאה:
קוד:
void show():String::show(),Num::show(){};
היא שגיאת קומפילציה, כי אתה מנסה להפעיל פונק' ברשימת האיתחול.
מאידך, ב-string וב-num אתה בכלל לא משתמש ברשימת איתחול...
תיקונים:
קוד:
String() : string(NULL) {}
String(char* newstring) : string(newstring) {}
ה-Ctor של STRING, שימוש נכון ברשימת האיתחול...
אין סיבה לשלוח לאופרטור ההמרה (Ctor עם ארגומנט יחיד) רפרנס ל-CHAR, אלא פויינטר ל-CHAR, כיאה ל-STRING...
קוד:
Num() : num(0) {}
Num(int& newnum) : num(newnum) {} // Here referense is indeed in order.
למרות שזה רק INT, ואין הרבה תועלת משליחת הרפרנס, זה הרגל טוב יותר...
שוב, רשימות איתחול.. חוסך עבודה כפולה...
קוד:
class String_and_Num:public String,public Num{
public:
String_and_Num():Num(),String(){}
void show(){String::show(); Num::show();}
};
שים לב, שלמרות ש-CLASS צריך לסגור עם נקודה פסיק, אין צורך לסגור בלוק של פונק' בנקודה פסיק...
פונק' מזומנות בחלק הקוד.
שיהיה בהצלחה...
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.
|