הגעת למגבלת הצפייה למשתמשים שאינם רשומים באתר
  • נשמח אם תצטרפו לקהילה שלנו. הרשמה לאתר תקנה לכם את האפשרות לשאול שאלות ולהגיב לשרשורים באתר ללא כל עלות
  • טופס ההרשמה לאתר נמצא כאן למטה ולוקח פחות מ-30 שניות למלא אותו (כן, בדקנו עם סטופר 🤓)

כמה שאלות בc++

Eden21

משתמש מתחיל
226
23
נק' מוניטין:
-19
226
23
כמה שאלות למתכנתים פה:
1)הסבר לגבי הפוינטר this
2)הסבר לגבי העמסת אופרטורים (אני רואה סירטונים ביוטוב ולא מבין כל כך מה זה)
3)הסבר לגבי פולימורפיזם
4)אשמח למקור טוב ללמוד בוא c++ כי המרצה שלי דיי פח,תודה מראש לעוזרים
 
1)הסבר לגבי הפוינטר this
C++ this Pointer

2)הסבר לגבי העמסת אופרטורים (אני רואה סירטונים ביוטוב ולא מבין כל כך מה זה)
בגדול.
נניח שיש אופרטור '+'

במחשב הוא מוגדר ככה שאם הוא מקבל שני מספרים הוא מחזיר תוצאה שהיא הסכום שלהם.
אתה יכול להעמיס עליו ולהגיד שבאפליקציה שלך אם שולחים לפונקציה '+' שני מספרים היא תחזיר חזקה של אחד בשני (או מה שבא לך. שתדפיס את שניהם סתם)

3)הסבר לגבי פולימורפיזם
C++/פולימורפיזם – ויקיספר

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

בנוסף, גם אם יש לך שאלה ספציפית, יש את stackoverflow שכנראה תמצא שם תשובה, ואם לא, תמיד תוכל לשאול.
 
234122 - Introduction to Systems Programming, Spring2016 - Course Material - - Tutorials
MATAM (234122) - Tutorial Videos

יש גם וידאו של הרצאות אבל קמחי זה המרצה הכי פח ביקום.
באופן כללי, אם יש לך ידע בC המעבר אמור להיות קל מבחינת סינטקס בלבד, כל הרעיונות של OOP לא קשורים לC וזה מצריך קצת הרגל.
אני אישית למדתי אך ורק מהמצגות שהבאתי לך בקישור הראשון וקיבלתי ציון סבבה לגמרי במתמ, בC++ קיבלתי 90% מהניקוד.
בכל מקרה, תקרא טוב את המצגות יש שם מלא דוגמאות, לגבי פולי' והורשה והכל, תקרא טוב טוב ומיד תרוץ לכתוב קוד, כי אין דרך להבין את זה בלי לראות את זה, תחפש גם ביוטיוב בנוסף לגוגל. ואם יהיו לך שאלות ספציפיות אתה מוזמן לשאול, למרות שבאמת עדיף בstackoverflow
 
C++ this Pointer


בגדול.
נניח שיש אופרטור '+'

במחשב הוא מוגדר ככה שאם הוא מקבל שני מספרים הוא מחזיר תוצאה שהיא הסכום שלהם.
אתה יכול להעמיס עליו ולהגיד שבאפליקציה שלך אם שולחים לפונקציה '+' שני מספרים היא תחזיר חזקה של אחד בשני (או מה שבא לך. שתדפיס את שניהם סתם)


C++/פולימורפיזם – ויקיספר


גוגל.
בלי צחוק, חפש כל נושא שיש לך עליו הרצאה. תלמד לבד ותנסה לקודד כמה שיותר כדי להבין כי להבין תיאוריה זה משהו אחד. אחרי שתכתוב קוד הכל יסתדר לך בראש
לגבי העמסת אופרטורים - נראה לי שהסבר יותר אינטואיטיבי יהיה העמסת אופרטור ביחס לסוגי משתנים שונים.
לדוגמה - אם נעשה Z = X + Y והם INTEGERS, זד יהיה תוצאת החיבור שלהם.
אם X וY יהיו אובייקטים, אז ל+ אין משמעות - אבל אתה יכול להעמיס עליו פעולות ביחס לאובייקטים (ומבנים, וENUM, וכל דבר אחר).

בפועל העמסת אופרטורים היא פונקציה שהשם שלה (והקריאה שלה) הם אופרטור.
 
לגבי העמסת אופרטורים - נראה לי שהסבר יותר אינטואיטיבי יהיה העמסת אופרטור ביחס לסוגי משתנים שונים.
לדוגמה - אם נעשה Z = X + Y והם INTEGERS, זד יהיה תוצאת החיבור שלהם.
אם X וY יהיו אובייקטים, אז ל+ אין משמעות - אבל אתה יכול להעמיס עליו פעולות ביחס לאובייקטים (ומבנים, וENUM, וכל דבר אחר).

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

1 + 2 = 3 זה קיים במחשב

אבל בננה + שוקולד =

בעייה. מחשב לא יודע מה זה בננה + שוקולד

אז אומרים לו שאם המשתנה הראשון הוא בננה והמשתנה השני הוא שוקולד על האופרטור +
תחזיר שוקובננה

מקווה שזה עוזר
 
אם יש לך סוג משתנה (struct או class) של "תלמיד".

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

אתה יכול גם "לדרוס" את פעולת החיבור של int ודברים כאלה, אבל זה פחות העניין בהעמסה.
 
1.מציין שמדובר בשדה או מתודה של הקלאס,כך למשל אם יש קלאס עם שדה INT בשם X,ובאותו הקלאס יש מתודה שמקבלת בתור פרמטר INT בשם X, הרי לא נדע לאיזה X להתייחס בגוף המתודה(הפרמטר או השדה),בעזרת THIS.X נוכל להפנות את הקומפיילר לX ששייך לקלאס,ולא למתודה.
*כאשר תעבוד עם העמסת אופרטורים ופעולות אונריות(על משתנה אחד),אתה לרוב תחזיר *THIS ,שזה בעצם האובייקט שמפעיל את המתודה.

2.שינוי של אופרטורים קיימים עבור הצרכים שלנו,אם בקוד שלנו נרצה לשנות את מה שעושה אופרטור באופן בסיסי(או לא עושה בכלל ונרצה להוסיף),נעמיס אותו כך שבכל פעם שנשתמש באופרטור הזה,המתודה שלנו עבורו תופעל,במקום המקורית(או בנוסף).

3.היכולת לעבוד עם אובייקטים שונים,בצורה דומה.
אם יש לי צורה הנדסית כלשהי,שזה משהו אבסטרקטי,שאומר שאין סתם צורה,יש מרובע או עיגול וכו...אני יודע שלכל צורה אפשר לקבל את השטח שלו בעזרת חישוב מסויים.
גם לאובייקט מסוג עיגול וגם לאובייקט מסוג מרובע יש את המתודה לקבלת שטח,וכל אחד מהם מממש אותה בדרך שונה.
 
שמע אני רואה שענו לך , בכללי אם יש לך עוד שאלות אני ממליץ לך לנסח את השאלה באנגלית ואני בטוח שאתה תמצא המון המון תשובות ברחבי האינטרנט ולא תצטרך לשאול אנשים/פורומים... ככה אתה גם מפתח יכולות שחשובות בתחום הזה
 
שימו לב! השרשור ישן: לא היו תגובות בשרשור מעל 90 יום.

ייתכן שהתוכן בשרשור כבר אינו רלוונטי ולכן עדיף לפתוח שרשור חדש.
Back
למעלה תחתית