פורסם 2010 באוגוסט 1215 שנים היי, מוחזרת לי השגיאה הבאהError 1 error C2065: 'maxGrade' : undeclared identifierכאשר הקוד הוא:.hclass Student{private: static int maxGrade;public: Student() {} static int getMaxGrade();};.cpp#include "Student.h" static int getMaxGrade() { return maxGrade; }ניסיתי להוסיף Student לפני הmaxGrade או לפני השם של הפונקציה אבל זה מחזיר לי שגיאה..מה הבעיה?תודה.
פורסם 2010 באוגוסט 1215 שנים יש לך שתי בעיות. קודם כל, כשאתה מצהיר (declare) על איבר סטטי במחלקה, עדיין צריך להגדיר (define) אותו איפשהו. בשביל זה אתה צריך להוסיף את השורה הבאה בקובץ ה-cpp שלך:int Student::maxGrade;הטעות השנייה שלך היא שכשאתה מממש מתודה של מחלקה (מה שבקובץ ה-cpp), אז אתה צריך לכלול את שם המחלקה בחתימה של המתודה - אחרת הקומפיילר לא יודע שהמתודה היא חלק מהמחלקה. כלומר, בקובץ ה-cpp אתה צריך לעשות:int Student::getMaxGrade(){ /// code goes here}בקוד שכתוב כרגע הגדרת פשוט פונקציה בשם getMaxGrade שאינה חלק משום מחלקה.
פורסם 2010 באוגוסט 1215 שנים מחבר תודה.אבל מה עם STATIC בשורת ההגדרה של הפונקציה? מספיק להגיד שהיא STATIC ב.H ?
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.