אחרי מלא זמן אני חוזר לתכנת בסי++

  • פותח הנושא stac
  • פורסם בתאריך

stac

New member
אחרי מלא זמן אני חוזר לתכנת בסי++

וקצת נעלם לי החומר מהראש תגידו לי אם זה אפשרי
class History { public: History(int nMoves) :_maxMoves(nMoves) {} ~History() {} private const int _maxMoves; int _arr[_maxMoves]; };​
אם אני לא יכול לקבוע את גודל המערך מקונסטרוקטור אז אני הצתרך לעשות מערך דינמי אני חושב
 

ihovav

New member
זה לא אפשרי אבל...

ישנה דרך אחרת שמאפשרת הגדרה בסגנון הזה - אני פשוט לא זוכר אותה אני אחפש בספרים שלי ואנסה למצוא את זה בכל מקרה - הדרך הזו לא חוקית - עד כמה שאני יודע - אפילו ניסיתי את זה וזה לא עובד
 

stac

New member
i hope u will find a way

אם לא אני הצתרך לעשות מערך דינמי
 

ihovav

New member
אני לא מוצא...

אני אמשיך לחפש בכל מקרה - אתה יכול להשתמש באובייקט "Vector" של CPP הוא גדל אוטומטית ע"פ מ"ס ההכנסות שאתה מבצע אליו - ולא צריך להגדיר גודל קבוע מראש או לעשות הגדלה וכ"ו הנה דוגמא לשימוש בו : ;vector<int> VecInt ;(88)VecInt.push_back תסתכל בתיעוד של ה MSDN על האובייקט VECTOR - יש שם דוגמאות לשימוש בו אתה צריך לדעת רק שההכנסה הכי פשוטה לווקטור היא בעזרת PUSH_BACK ולא INSERT כמו שאולי עלול להראות לך
 

WarLord

New member
אני חושב שאין דרך

בכל אופן לא בכלים של השפה ++C עצמה. וקטור וכלים דומים בעצם מבצעים את הניהול הדינמי של ה"מערך" בשבילך וכנראה שהם ממומשים ברשימה מקושרת או טבלת ערבול שדורשת ערבול מחדש מדי פעם.
 

עידית_

New member
ihovav צודק, ולדעתי אין דרך, כיוון

כיוון שגודל מערך לא-דינמי חייב להיות ידוע בזמן קומפילציה. אם הוא לא ידוע - אין מנוס מדינמי. אם אני לא טועה.
 

ihovav

New member
יש דרך... אני מחפש עכשיו

המורה שלי ל CPP הסביר לנו איך ניתן לעשות את זה אני רק צריך למצוא איפה זה כתוב בכל מקרה - אני חושב ששימוש בווקטור הרבה יותר טוב מסתם מערך - מאחר ואין את המימד של כמות איברים מוגבלת וכ"ו
 

stac

New member
מצאתי מדריך ממש טוב על STL

כולל וקטורים כמובן
 
למעלה