C++ friend function - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

C++ friend function


נעמה.

Recommended Posts

הצהרתי על פונקציות חברות ע"מ להשתמש באופרטורים >> ו<< לקלוט מחרוזות:


friend ostream& operator<<(ostream &os, String&);
friend istream& operator>>(istream &is, String&);

וממשתי:


ostream & operator<<(ostream&os, String&s)
{
os<<s;
return os;
}

istream & operator>>(istream&is, String&s)
{
is>>s;
return is;
}

ואני מקבלת כל מיני הערות מוזרות לדוגמא:


'ostream' : 'friend' not permitted on data declarations
'ostream' : missing storage-class or type specifiers
'ostream' : unable to resolve function overload

מה הבעיה?????

קישור לתוכן
שתף באתרים אחרים

יש כאן משהו שאני לא מבין...

איפה הצהרת על FRIENDS? באיזו מחלקה?

בקשר לשאלה שלך - בדרך כלל מפרידים בין ההצהרות למימוש(אלא אם זה פונ של שורות בודדות שלא אכפת לך לשים אותה כINLINE).

בנוסף אם את רוצה לרשום שהאיבר לא קיים, כדאי לעשות את זה מחוץ למתודות. כלומר, הפונ שלך תחזיר את האיבר במקרה שהוא קיים ונמצא, אחרת, יחזיר NULL. מי שקרא למתודה יבדוק אם זה NULL, ואם כן, ידפיס שהאיבר לא קיים.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...