פורסם 2009 ביוני 1516 שנים שלום לכם.אני כותב תרגיל בשפת ++C.יש לי מחלקה, שמימשתי עבורה את האופרטור * - כפל.Polynomial operator * (double x);עכשיו, אמרו שצריך לטפל במצב שיש לי משהו כמו:Polynomial temp = poly2 * 10;וגם למצב:Polynomial temp = 10 * poly2;מיותר לציין שפולי2 וטמפ הם מאותו מחלקה.איך אני גורם לאופרטור לעבוד גם כשהמספר בא קודם וגם כשהאובייקט בא קודם?ועוד שאלה, איך אני מקזז double בהדפסה, שיופיע רק עם 2 ספרות אחרי הנקודה?תודה מראש לעוזרים.
פורסם 2009 ביוני 1516 שנים הממ לא הצלחתי למצוא איך לעשות את זה חוץ מהשיטה של friend functionhttp://www.learncpp.com/cpp-tutorial/92-overloading-the-arithmetic-operators/תקרא את Overloading operators for operands of different typesלגבי מספר הספרות אחרי נקודה: נראה לי שזה הולך ככה:std::cout << std::setprecision(2) << 3.123456789f;וזה ידפיס רק 3.12 או 3.13 (לא זוכר אם זה מעגל, ואם כן אני גם לא בטוח אם זה יעגל במקרה שלי).
פורסם 2009 ביוני 1516 שנים מחבר תודה חבר. עכשיו יש לי בעיה אחרת. הקוד מצורף למטה.משום מה כשאני מנסה לקמפל הוא קופץ לי עם שגיאות על זה שיצרתי אובייקטים בmain.על מה ולמה?מודה על העזרה מראש.[attachment deleted by admin]
פורסם 2009 ביוני 1516 שנים למיטב זכרוני לא צריך friend functions או global operators. תכתוב אופרטור המרה מ-double ל-Polynomial.
פורסם 2009 ביוני 1516 שנים מחבר סבבה, הסתדרתי.דומה למה שמאסטרDK אמר פשוט ככה:cout.precision(5);cout<<"4.412412412431243והוא ידפיס רק 5 ספרות אחרי הנקודה.תודה רבה לעוזרים.
פורסם 2009 ביוני 1516 שנים מחבר לא עובד לי עדיין.גם איך שאמרתי לא עובד בכל המקרים.אני צריך שגם אם יש לי 0 בלי ספרות אחרי הנקודה בdouble שליהוא יודפס 0.00. אין דרך לעשות את זה?
פורסם 2009 ביוני 1616 שנים בבקשה:[ skwo@Moonlight dev ] cat test.cpp#include <iostream>#include <iomanip>int main(){ double a = 0; std::cout << std::fixed << std::setprecision(2) << a << std::endl; return 0;}[ skwo@Moonlight dev ] g++ test.cpp[ skwo@Moonlight dev ] ./a.out0.00[ skwo@Moonlight dev ]
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.