פורסם 2005 ביוני 1920 שנים שלום,עשיתי קלאס שגורם להמון הודעות שגיאה יתכן ואי אפשר להגדיר קלאס כזה.. אשמח אם תבדקו את העניין..יש לי קלאס בשם סטודנט.ועשיתי את הקלאס בשם סטודנטד הבא:#ifndef PART2_STUDENTS_H#define PART2_STUDENTS_H#include <vector>#include "part2_student.h"class Students{ public: Students(vector <Student> vec); ~Students(); unsigned int calculate_avg_grade(); void print_avg_grade(); void print_max_grade(); void print_min_grade(); unsigned int find_median_grade(); void print_median_grade(); void print_the_grades(); private: vector <Student> _vec;};#endif
פורסם 2005 ביוני 1920 שנים יעזור אם תדפיסי מה הבעיות אוקי, אני מניח שהקלאס Student מוגדר בקובץ part2_student.h. נכון? אז הקלאס עצמו נראה בסדר, חוץ מזה שאתה צריכה להחליף את vector ב-std::vector (אלא אם ב-part2_student.h מופיעה השורה using namespace std, מה שלא מומלץ שיהיה) חוץ מזה, הייתי ממליץ לך להחליף את השורה: Students(vector <Student> vec); ב: Students(const std::vector <Student> &vec); (להעביר את הוקטור by reference ולא by value)
פורסם 2005 ביוני 1920 שנים מחבר וואו תודה זה באמת הוריד לי את מספר השגיאות.עדין נשארו שגיאות בקובץ מיין למשל כניראה שאני לא יכולה להגדיר: Students S;כי אני מקבלת את הודעת השגיאה הבאה:Students' : no appropriate default constructor availableמה הכוונה?
פורסם 2005 ביוני 1920 שנים בדיוק מה שהוא אמר - לא הגדרת קונסטרקטור דיפולטי.הגדרת רק קונסטרקטור שמקבל וקטור של Student, ולכן את חייבת לאתחל את הקלאס מכזה וקטור.אגב, קונסטרקטור דיפולטי מוגדר בצורה אוטומטית רק אם לא הוגדר שום קונסטרקטור אחר.
פורסם 2005 ביוני 1920 שנים מחבר בהמשך אני אכן מאתחלת את ה-S הזה......אולי אני צריכה לעשות את זה באותה השורה? S=new Students(vec);
פורסם 2005 ביוני 1920 שנים לא, פשוט להגדיר את S ככה:Students S(vec);אגב, בשביל לכתוב בפורום קוד תשתמשי ב-code (הכפתור עם הסולמית), לא בהצמדה שמאלה.
פורסם 2005 ביוני 1920 שנים מחבר ממש תודה על הכל... אבל עדיין אני נתקלת בכמה בעיות כמו:קליטת סטרינג: cin<<ID<<endl;ההודעת שגיאה היא זו:binary '<<' : 'class std::basic_istream<char,struct std::char_traits<char> >' does not define this operator or a conversion to a type acceptable to the predefined
פורסם 2005 ביוני 1920 שנים ב-cin משתמשים ב-<<, ההפך מב-cout.דרך אגב, יש הגיון בזה (הגיון קצת עקום, אבל שיהיה):כשאת מדפיסה משהו, את כותבת את הערך המודפס לתוך cout, ולכן החצים יצביעו מהמשתנה ל-cout.כשאת קוראת משהו, את כותבת מ-cin לתוך המשתנה, ולכן החץ יהיה מה-cin למשתנה.
פורסם 2005 ביוני 1920 שנים מחבר זה לא פתר את הבעיה עדין יש הודעת שגיאה:binary '>>' : no operator defined which takes a right-hand operand of type '' (or there is no acceptable conversion)
פורסם 2005 ביוני 2020 שנים א. מה הטיפוס של ID?ב. לא נראה לי ש-cin יודע לקבל endl (כלומר את צריכה לכתוב רק cin>>ID)
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.