זאת השאלה והנה קצת עזרה
מצורף לינק לשאלה. הנה סידרתי את זה קצת:
main() { expression *p = new Exponent( new literal(2.0), new Sum( new literal(1.0), new literal(2.0)) ); Expression *q = new CondExp( new Sum( new literal(1.0), new literal(-1.0)), new Exponent( new literal(4.0), new literal (3.0)), new Product( new literal (2.0), new literal (3.0)) ); cout << *p << " = " << p->eval(); cout << *q << " = " << q->eval(); }
והפלט
( 2 ^ ( 1 + 2 ) ) = 8 (( 1 + -1)) ? ( 4 ^ 3 ) : ( 2 * 3 ) = 6
קודם כל, אתה לא צריך ש Expression יהיה string כלשהו. יותר מזה, אתה לא יכול! מה שאתה צריך לעשות כדי שזה יודפס כמו שצריך על המסך זה להעמיס את האופרטור >>. למדת לעשות דבר כזה? אתה מבין למה?