עבור לתוכן

סינטקס בc++

Featured Replies

פורסם

מה זה אומר שפונקציה מקבלת "return" משהו?

לדוגמא:

 void func(return x)

פורסם

הדרך היחידה שדבר כזה בכלל יתקמפל זה אם מישהו יגדיר מקרו בשם return.

המקום היחיד שאתה יכול לעשות כזה דבר בלי להזרק לבור של תנינים רעבים זה ב-obfuscated C code contenst.

פורסם
  • מחבר

באחד מפתרונות המבחנים שלנו הופיעה הדבר הזה :

class Station {
private:
char *name;
public:
char *getName() { return name; }
Station(char *n) {
name = new char[strlen(n) + 1];
strcpy(name , n);
}
bool operator==(Station &s) {
return !strcmp(name, s.name);
}
};

פורסם

ומה הבעיה בדיוק ?

פורסם

באחד מפתרונות המבחנים שלנו הופיעה הדבר הזה ::

char *getName() { return name; }

זה צורת כתיבה מקובלת וחוקית ב C++ אך הבנת אותה לא נכון. זה כמו לרשום:

char* getName()
{
return name;
}
/code]

פורסם

אין גם כלכך הגיון בצורת רישום הזו, שהרי מחזירים את המצביע עצמו ולכן ניתן לשנות אותו מחוץ לאובייקט (ואז הלך כל הרעיון של להגדיר אותו private). יותר נכון היה לעשות שהמתודה הזו מחזירה const.

פורסם
  • מחבר

צודק באמת לא ראיתי טוב כנראה הייתי עייף...

ארכיון

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

דיונים חדשים