ABA


"מעבר מ C ל C++"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #15721 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 15721
DarkMaster
חבר מתאריך 1.8.02
126 הודעות
   11:53   13.02.10   
אל הפורום  
  מעבר מ C ל C++  
 
   בוקר טוב

אני צריך מיקוד לגבי מה יש ללמוד ב C++ לאחר שיש כבר ידע ב C
ובמה C++ יכולה לקל עליי מאשר C לגבי כל המחלקות וכל אלה.

ומשהו שמאוד התקשתי להבין את ה בנאי והמפרק אם מישהו יכול בבקשה להסביר ב 2 שורות


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  זה תכנות קצת שונה מאשר יש ב c VeNom  13.02.10 12:53 1
  שמע זה מעבר לתיכנות OO... פאביו ג'וניור 13.02.10 15:44 2
     תודה רבה חבר'ה DarkMaster 14.02.10 23:17 3

       
VeNom  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 7.6.02
7922 הודעות, 1 פידבק
   12:53   13.02.10   
אל הפורום  
  1. זה תכנות קצת שונה מאשר יש ב c  
בתגובה להודעה מספר 0
 
   אתה צריך ללמוד את כל C++ אם אתה רוצה להתמחות בזה..
זה שיש לך רקע ב C רק יעזור לך..
בעקרון הכל שם עובד אחרת..אם ב C היה לך מבנה שנקרא struct אז ב c++ יש לך מבנה נפוץ שנקרא class שזה בעצם די דומה ל struct רק שיש הרשאות ב class..
בכל מחלקה יש לך בנאי ומפרק שהתפקיד שלהם בגדול הוא לטפל בבנייה ובפירוק האובייקט..
מה שיופיע בד"כ בבנאי זה כל מיני אתחולים והקצאות דינמיות שיש לך למשתני המחלקה..ובפירוק שחרורי זכרון בעיקר..
כמובן שאפשר לעשות הכל בפונקציות האלה.
בזמן בניית האובייקט הדבר הראשון שמופעל זה הבנאי..ובפירוק האובייקט הדבר האחרון שמופעל זה המפרק.
קח לדוגמא דוגמא של תוכנית main שממשת לוח דמקה לדוגמא.
ללוח דמקה אתה צריך מחלקת לוח שתקבל גודל מסויים בזמן בניית האוביקט(אם הלוח דינמי)..ולכן בזמן יצירת הלוח אתה תצטרך בבנאי של הלוח לבנות אותו, כלומר להקצות מטריצה דינמית לפי הגודל ולאתחל את כל המשבצות שבו(המשבצות גם יכולות להיות class מסויים).
בסוף המשחק לאחר שיש מנצח אתה צריך לשחרר את ההקצאה הדינמית שלך ולכן במפרק אתה תמחק את כל הזכרון הדינמי שהצטבר בזמן בניית הלוח..
אם אתה חדש וזה נראה לך קצת מסובך אז לאט לאט תתחיל לקרוא על כל המבנה של תכנות object oriented ולדעתי אחרי שקראת את החומר הדרך הכי טובה להיכנס לעניינים זה לבנות משחק לוח של 4 בשורה או משהו שיעבוד עם הקצאות דינמיות.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
פאביו ג'וניור

   15:44   13.02.10   
אל הפורום  
  2. שמע זה מעבר לתיכנות OO...  
בתגובה להודעה מספר 0
 
   זה בא לידי ביטוי גם בתיכנון עצמו...
אתה פשוט מגדיר הכל (כמעט..) כמחלקות..
בכל מקרה לגביי מחלקות עזר שבאות עם הC++ יש את האתר: http://www.cplusplus.com/
שהוא אתר מעולה לגביי רוב המחלקות הסטנדרטיות שבC++ (כגון המחלקה string..) עם הסברים והכל..

שיטה בונה ושיטה הורסת אממ..
בגדול קח לדוגמא את זה:


class a
{
int* arr;

public:
a(int size)
{
arr = new int;
{
~a()
{
delete arr;
}
};


(כן זה לא כ"כ מסודר חח)
ואז תעשה קוד כזה לדוגמא:

int main()
{
a test(3)
cout<<"hello this is a test"<<endl;
return 0;
{

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DarkMaster
חבר מתאריך 1.8.02
126 הודעות
   23:17   14.02.10   
אל הפורום  
  3. תודה רבה חבר'ה  
בתגובה להודעה מספר 2
 
   חידדתם לי דברים

יש לכם מושג אולי מאיפה אני יכול לקבל תרגילים לפי רמות כדי להכנס לעניינים , אולי מישהו פה עשה קורס מבוא למדעי המחשב מתקדם והוא יכול בבקשה לעלות לי את השאלות לעבודות בית ועבודות הגשה שלו.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net