לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #2  
ישן 23-04-2009, 16:16
צלמית המשתמש של Narxx
  משתמש זכר Narxx Narxx אינו מחובר  
 
חבר מתאריך: 21.12.04
הודעות: 30,021
בתגובה להודעה מספר 1 שנכתבה על ידי lt.data שמתחילה ב "שאלה בנושא הקצאה דינמית ב c++"

אם הבנתי נכון, אתה שואל איך להקצות גודל של מערך (או מחרוזת שזה מערך מסוג char).
אז זה ממש כמו new רגיל (כמו בדוגמא שהבאת) רק שצריך להוסיף סוגריים מרובעים ואת גודל ההקצאה בתוכם.

לדוגמא, אם אני רוצה להקצות מערך דינאמי בגודל 20 תווים מסוג int:
קוד PHP:
 int* array = new int[20]; 

מן הסתם, מחרוזת יראה אותו הדבר רק עם char במקום int.
בד"כ כשעושים הקצאה דינאמית למחרוזת, נהוג לסרוק קודם למחרוזת קיימת את הקלט, ואז להקצות דינמית מחרוזת נוספת שהיא בדיוק בגודל של הסריקה (פלוס 1 עבור תו-סיום-מחרוזת).
קוד PHP:
 char string[256];
charstrPtr;
cin >> string;
strPtr = new char[strlen(string)+1]; 

ואז בסוף גם אפשר להעתיק את המחרוזת הישנה לחדשה
קוד PHP:
 strcpy (strPtrstring); 
_____________________________________
בברכה, מתן.
www.MatanNarkiss.com

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #7  
ישן 25-04-2009, 13:30
  lt.data lt.data אינו מחובר  
 
חבר מתאריך: 02.03.07
הודעות: 25
לא באתי לפגוע במשהו
בתגובה להודעה מספר 6 שנכתבה על ידי דור שמתחילה ב "אולי הוא הבין אותך יותר טוב,..."

כמובן שכל עזרה מתקבלת בברכה,
פשוט אחרי שקראתי מה שכתבתי שמתי לב שהניסוח לא היה הכי ברור.
ושמחתי שבכול זאת מישהו הצליח להבין.

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

לדוגמא יש מחלקת אב A
ובנים B C D E

אם אתה קולט בקובץ טקסט B C

אז אתה צריך ליצור
קוד PHP:
 Aa1=new 

קוד PHP:
 Aa2=new 


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

השאלה השניה היתה סתם מתוך סקרנות.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #8  
ישן 25-04-2009, 15:30
  טוארג טוארג אינו מחובר  
 
חבר מתאריך: 13.02.09
הודעות: 365
בתגובה להודעה מספר 7 שנכתבה על ידי lt.data שמתחילה ב "לא באתי לפגוע במשהו"

נתקלתי בבעייה כזו בעבר ופתרנו אותה ככה:

א. כל class מכיל פונקציה סטטית בשם New שמחזירה אובייקט חדש מהטיפוס של ה class.

ב. יש טבלה מרכזית שממפה את שם ה class (המחרוזות A, B, C וכו' בדוגמא לעיל) לפונקציית ה New שלו.

ג. בעת אתחול המערכת כל class מוסיף עצמו לטבלה המרכזית. יש כמה טריקים לעשות את זה בצורה נקייה.

ד. כשקוראים את הקלט ניגשים עם השם שהתקבל, למשל המחרוזת "A", לטבלה, ממנה מקבלים פוינטר לפונקציית ה New, מפעילים את הפונקציה ומקבלים אובייקט. זה יותר טוב מ if else או switch case ענק כי הקוד בגודל קבוע ואינו מתנפח כשנוספים אלף classes חדשים.

רק מה, כמו שנהוג לומר בסדרות יאפיז אמריקאיות: It's so damn 80s. למה להתחכם ב ++C כשהכל בא בקלות ב Java או Net. ?
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 19:00

הדף נוצר ב 0.05 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר