שיחה:C++‎

מתוך ויקיפדיה, האנציקלופדיה החופשית

בשביל מי שבעתיד ירצה לכתוב את מונחים ב-C++ (תרומת אלמוני):

המצביע נוצר אוטומטית לכל מחלקה ומאפשר למשתמש נוחות בכך שהוא אינו צריך לדאוג למצביע כזה בעצמו.
המדובר ככל הנראה במצביע this. מלח השמים 19:52, 14 מרץ 2005 (UTC)
שכחתי לכתוב את השם... טרול רפאים 19:55, 14 מרץ 2005 (UTC)

c++

תוכן עניינים

[עריכה] ערך בעייתי

אנציקלופדיה אמורה לכלול מידע אנציקלופדי, ולא להיות מדריך ל-CPP. בשביל יש את TC++PL. יש לתאר תכונות של השפה, ולא לתת פרטים בסגנון:

לכל מחלקה אפשר ליצור פונקציה בנאית (constructors), ששמה כשם המחלקה, שתפקידה לאתחל את משתנה המחלקה כאשר נוצר מופע של המחלקה, ופונקציה מפרקת (destructor), ששמה כשם המחלקה עם קידומת של תו תלתלית ~, שמופעלת כאשר המופע של המחלקה נמחק.
בכדי ליצור מופע של המחלקה יש להשתמש במילה השמורה new. בכדי לפנות בתוך המחלקה בפונקציות חבר, למשתנים פנימיים אפשר להשתמש במילה השמורה this.

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

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

ואם כבר אני מוציא טעויות, הנה עוד אחת שמצאתי ברפרוף:

מבנה struct הורחב ויכול לכלול בתוכו מלבד משתנים גם שיטות, והוא למעשה מוגדר כמחלקה class, עם בררת מחדל של גישה private.

ראשית, מחלקה יכולה לרשת struct אבל struct לא יכול לרשת ממחלקה. שנית, דווקא החברים של struct הם ציבוריים ושם מחלקה הם פרטיים אם לא מצויין מגדיר טווח הכרה. בדיוק הפוך ממה שכתוב...

בקיצור, הפרטים הטכניים בערך גם טרחניים ומיותרים (לדעתי), ולא מעט מהם גם פשוט שגויים. מי שרוצה לכתוב את הערך הזה יכול להציץ בערך המקביל בויקי האנגלית, על חצי המאמר עד לפרק Language features. ‏conio.h‏ • ‏שיחה‏ 02:34, 3 מאי 2006 (IDT)

אני מסכים עם העיקרון שמוצג כאן: יש להבדיל בין אנציקלופדיה לבין מדריך למשתמש. דוד שי 08:22, 3 מאי 2006 (IDT)
אני מסכים. עד כה קצרה ידי מלישם העניין. הא? 17:38, 3 מאי 2006 (IDT)

[עריכה] מחרוזות

"בנוסף, ספריית התבניות הסטנדרטית STL מכילה אובייקט string, המשמש לאיחסון מחרוזות. זהו אינו משתנה טבעי של השפה, אלא אובייקט המכיל למעשה מערך של משתנים מסוג char."

האם בסטנדרט של השפה (שאותו לא קראתי) כתוב כי אובייקט string חייב להיות ממומש באמצעות מערך של משתנים מסוג char? אם לא, אין לכתוב זאת כאן. גדי אלכסנדרוביץ' 18:13, 29 יוני 2006 (IDT)

כך זה ממומש, למיטב ידיעתי, בגרסה של Visual C++ 6 של מיקרוסופט, וקשה לי לחשוב על דרך פשוטה יותר לעשות את זה. קשה לי לחשוב על מתכנת שפוי בדעתו שישתמש בדרך אחרת לממש string. אפשר להחליף את המילה "למעשה" ב"בדר״כ". צחי 18:18, 29 יוני 2006 (IDT)
אבל ב-Visual studio C++ 6 למשל, מוגדרים בספריה "strstream" טיפוסים שנקראים "istrstream", "ostrstream", "strstream" שהם טיפוסים שמגדירים מחרוזת לקלט+פלט, לפלט ולקלט בהתאמה.--80.178.4.115 14:12, 18 יולי 2006 (IDT)
למיטב ידיעתי מדובר בספריה תקנית ולא באיזה הוקוס פוקוס של מיקרוסופט - אבל בכל מקרה אני מתקשה לראות את הרלוונטיות של זה לשאלת המימוש של הטיפוס string. גדי אלכסנדרוביץ' 14:18, 18 יולי 2006 (IDT)
זו שאלה של עובדות: עובדתית, SGI השתמשו במערך של char-ים כדי לממש את המחלקה string. ‏conio.h‏ • ‏שיחה‏ 18:19, 29 יוני 2006 (IDT)
תצטרך להיות פחות לאקוני (אני לא בקיא בתחום ולא מכיר את SGI). למיטב הבנתי, השאלה היא לא איך מישהו זה או אחר ביצע את המימוש, אלא איך כל מי שמתכוון לממש את זה חייב לבצע את המימוש. להחליף ל"בד"כ" אפשר. גדי אלכסנדרוביץ' 18:23, 29 יוני 2006 (IDT)
נעים להכיר: w:en:Silicon Graphics. :)
אלה החבר'ה שאחראים במקור ל-STL. בכ"א, בורלנד, MS וגנו מיישמים את string כמערך של תווים. זה אומר "למעשה" ולא "בדרך-כלל". ברגע שתהיה דוגמה נגדית של מימוש שלם של STL, שבו string ממומש אחרת אפשר יהיה לסייג ולכתוב "בדרך כלל". אני לא שמעתי על מימוש הזוי כזה. ‏conio.h‏ • ‏שיחה‏ 18:26, 29 יוני 2006 (IDT)
בעצם, אצל SGI לא הייתה מחלקת string. זה קיים רק בספריה הסטנדרטית של CPP. ל-SGI היו כל מיני מעקפים. ‏conio.h‏ • ‏שיחה‏ 18:28, 29 יוני 2006 (IDT)
מכיוון שמדובר בויכוח טרמינולוגי (אני מבין את "למעשה" בצורה שונה משאתה מבין אותו), אני חושב שיותר נבון לאמץ את הפתרון המקובל על שני הצדדים. עם זאת, אני לא אבצע את השינוי בעצמי כדי לא להרגיז אף אחד. גדי אלכסנדרוביץ' 18:32, 29 יוני 2006 (IDT)
מה דעתך על השינוי שביצעתי? לדעתי כל הסיפור על המימוש לא רלבנטי לערך הזה, גם ככה יש כאן מיליון פרטים טכניים מיותרים להחריד. מקסימום אפשר יהיה להכניס את זה להספריה הסטנדרטית של C++‎, כשייכתב. ‏conio.h‏ • ‏שיחה‏ 19:27, 29 יוני 2006 (IDT)
נראה לי בסדר גמור. גדי אלכסנדרוביץ' 19:31, 29 יוני 2006 (IDT)
יש בכלל מחלקה כזאת שקוראים לה string?
--80.178.4.163 18:33, 16 באוקטובר 2006 (IST)

[עריכה] אי דיוקים בפרק אודות טיפוסים

הועבר משיחת משתמש:הא?.

אפשר לדעת מה כל כך לא מדוייק במה שכתבתי בערך C++ שמחקת את הכל? צחי 20:57, 25 יוני 2006 (IDT)

אהם... צחי 00:51, 29 יוני 2006 (IDT)
הא?, אני חושב שכשאתה משחזר תוספת של משתמש רשום כדאי לך להסביר לו בדף השיחה למה שחזרת. צהוב עולה 01:14, 29 יוני 2006 (IDT)
אהם גם לך. :)
  • הביטויים "דיוק יחיד" ו"דיוק כפול" הם תרגום לגמרי לא מוצלח של הביטויים single precision ו-double precision.
  • ציוני הגדלים שגויים, מפני שהם תלויי פלטפורמה לחלוטין.
  • הניסוח של הסעיף אודות char אינו אנציקלופדי.
  • הפסקה אודות STL אינה במקומה, לפחות לא בצורתה דנן.
אכן היה זה עדיף אילו הייתי מפרט יותר במקור. סלחו לי. הא? 13:12, 29 יוני 2006 (IDT)
ולא היה יותר קל לתקן את זה, במקום לכתוב את ההסבר המפורט הזה? חשבתי שכך נבנית הויקיפדיה, על ידי תיקונים חוזרים ונשנים. אף אחד לא מצפה לטקסט מושלם בגרסה הראשונה. חוץ מזה, אני חולק על דבריך כאילו ציוני הגדלים שגויים. למיטב ידיעתי, רק long תלוי פלטפורמה, כפי שציינתי. צחי 18:02, 29 יוני 2006 (IDT)
כל הגדלים תלויי פלטפורמה. מה שמובטח הוא רק יחסי הסדר בין הגדלים. מה שכן, אני לא מבין מה רע ב"דיוק יחיד" ו"דיוק כפול" - או יותר נכון, מה התרגום המוצלח יותר. גדי אלכסנדרוביץ' 18:10, 29 יוני 2006 (IDT)
תיקנתי, לפי הספר "++C כשפת אם", מאת יצחק גרבר, שזה מה שיש לי בבית כרגע. צחי 18:12, 29 יוני 2006 (IDT)
אולי כדאי שתחליף את מה שיש לך בבית כרגע לספר של Stroustrup. הנה מה שיש לאחד מהמרצים בטכניון לומר על הספר של גרבר. גדי אלכסנדרוביץ' 18:20, 29 יוני 2006 (IDT)

אז אני מבין שאסור שיהיו טעויות בויקיפדיה? שכל ערך צריך לעלות בצורה מושלמת? צחי 02:06, 2 יולי 2006 (IDT)

כשאתה מנסח את זה ככה, כן... ‏conio.h‏ • ‏שיחה‏ 02:14, 2 יולי 2006 (IDT)
הניסוח שגוי. יש הבדל בין "אסור שיהיו טעויות" (שזה נכון) ובין "לעלות בצורה מושלמת". ערך לא מושלם (שבו חסר מידע, כתוב בצורה עילגת, מציג את הנושא בצורה שרק מקצוענים יצליחו להבין, מכסה את הנושאים בסדר לא הגיוני, מעוצב בצורה לא נוחה לקריאה, מתמקד בפרטים השוליים) לא בהכרח מכיל שגיאות עובדתיות. גדי אלכסנדרוביץ' 07:46, 2 יולי 2006 (IDT)
קשקוש. יש בויקיפדיה המון שגיאות. בגלל זה זה ויקי, כי כל הזמן מתקנים ומרחיבים, עד שמגיעים לערך ראוי. אם יש שגיאות, תתקנו, אל תמחקו! צחי 10:22, 2 יולי 2006 (IDT)
מה הקשקוש כאן? נכון, יש בויקיפדיה הרבה שטויות. זה לא משנה את זה שאסור שיהיו בויקיפדיה טעויות. אם יש טעויות, פירוש הדבר שנכשלנו במשימה לשמור את ויקיפדיה חפה מטעויות. זה לא אומר שזה בסדר. מכיוון שלא תמיד אפשר לתקן, לעתים עדיף למחוק. בפרט כשמישהו הוסיף טעויות ועוד מידע שהעורך אינו יודע אם הוא טעות או לא - מי שכבר טעה באותה התוספת ממש לא מעורר אמון רב ביחס לשאר התוספת. גדי אלכסנדרוביץ' 13:46, 2 יולי 2006 (IDT)
והמסקנה היא: גם בדפי שיחה יכולים להיות טעויות (ואני מקווה שלא ימחקו אותן...)--80.178.4.163 18:38, 16 באוקטובר 2006 (IST)

[עריכה] חלונות

דרך אגב, אתם יודעים שפותחה גרסה של C++ למערכת ההפעלה חלונות?--80.178.141.162 14:19, 10 יולי 2006 (IDT)

למה בדיוק כוונתך? גדי אלכסנדרוביץ' 16:42, 10 יולי 2006 (IDT)
תכנות ב-C++ ב-Windows API.
מקווה שהבנת
--80.178.89.116 15:39, 3 אוגוסט 2006 (IDT)
לקריאה נוספת:
  • יסודות התכנות בחלונות עם C\C++ /הוצאת הוד-עמי
  • המדריך השלם Visual C++ /הוצאת הוד עמי (ספר זה הוא ספר המשך לספר לעיל)

80.178.89.116 15:48, 3 אוגוסט 2006 (IDT)

לא אמרת בעצם כלום, אבל הרושם שאני מקבל הוא שאתה מבלבל בין "גרסה של C++", כלומר של השפה עצמה, ובין API לחלונות עבור C++. גדי אלכסנדרוביץ' 16:17, 3 אוגוסט 2006 (IDT)

[עריכה] מילים שמורות

האם abstract היא מילה שמורה של ++C? (אם כן, מאיזה תקן?) ומה קרה למילים כמו asm? הרשימה לא נראית לי רצינית. גדי אלכסנדרוביץ' 18:42, 9 בנובמבר 2006 (IST)

בסעיף "מילים שמורות" אני לא ראיתי שום רשימה ושום כלום.--17:04, 15 בנובמבר 2006 (IST)
כי רוקנתי את הסעיף. תוכל לראות מה היה בו על ידי מבט בגרסאות הקודמות. גדי אלכסנדרוביץ' 17:08, 15 בנובמבר 2006 (IST)