06-03-2005, 02:30
|
|
|
|
חבר מתאריך: 20.06.03
הודעות: 5,616
|
|
הסבר לבעייה שלך...
בתגובה להודעה מספר 1 שנכתבה על ידי דוכובניק שמתחילה ב "הורשה ב ++c, לא עובר הידור. מישהו יכול לעוץ לי"
תחביר של בנאים (constructors) שונה מעט מתחביר של פונקציות חברות (member function).
אם אתה רוצה בבנאי לתת ערכים למשתנים השיטה היא כזו (אני ממליץ לשים בנאים בסיסיים בקובץ ה-header):
קוד PHP:
//baseh.h #ifndef mybase #define mybase class base { public: base(int n) : first(n) {} protected: int first; }; #endif
הבנאי הוא פונקציה מיוחדת ואת הצבת הערכים אתה שם מיד אחרי שם הבנאי והסוגריים (לא משנה אם זה קובץ h או cpp), שם המשתנה ואחריו בסוגריים הערך שאתה רוצה לשים בו. יש להפריד משתנים בפסיקים, ואם אין לך הוראות נוספות לשים בבנאי, אזי תפתח ותסגור סוגריים מסולסלים.
הנה דוגמאות נוספות:
קוד PHP:
Class test { private: int x; float y; public: test (void) : x(0), y(0) {} // בנאי ברירת מחדל, // מספק ערכי ברירת מחדל!!! test (int a, int b=0) : x(a), y(b) {} // בנאי מאתחל // b שים לב, שגם פה, מקבל // ערך ברירת מחדל test (test &t) : x(t.x), y(t.y) {} // וזה בנאי מעתיק
כמובן שזה קצה קצנו של הקרחון....
בהצלחה,
|