View the step-by-step solution to:

1. What is the output of the following C++ program? Modify the program so that the put function is virtual. What is the output after that change?

Here is my second 2 questions. I don't need the answer to these for almost two weeks. Thanks again.

1. What is the output of the following C++ program? Modify the program so that the put function is virtual. What is the output after that change? Does Java allow both virtual and nonvirtual methods? If not, which does it allow? Rewrite this program in Java and identify at least four differences between the programs in the two languages. #include <iostream> #include <string> using namespace std; class Circle { public: Circle(double radius) {this->radius = radius; } void put() const {cout << "Radius = " << radius;} private: double radius; }; class ColoredCircle: public Circle { public: ColoredCircle(double radius, string color); void put() const; private: string color; }; ColoredCircle::ColoredCircle(double radius, string color) : Circle(radius), color(color) {} void ColoredCircle::put() const { Circle::put(); cout << " Color = " << color; } int main() { ColoredCircle redCircle(100., "red"); Circle* circle1 = &redCircle; circle1->put(); cout << endl; Circle circle(50.); Circle* circle2 = &circle; circle2->put(); cout << endl; return 0;
Background image of page 1
} 2. Consider the following C++ main function in place of the one in previous problem. int main() { Circle circle1(100.), *circle2 = new Circle(200.); ColoredCircle redCircle(300, "red"), *blueCircle = new ColoredCircle(400., "blue"); circle1 = redCircle; circle2 = blueCircle; circle1.put(); cout << endl; circle2->put(); cout << endl; return 0; } Assuming the put function was made virtual, what is the output of the above program? This program contains an example of object slicing. On what line does it occur? Why must it happen? Explain why this never happens in Java. Do some investigating and determine how C# avoids this problem.
Background image of page 2
Sign up to view the entire interaction

Top Answer

See attached... View the full answer

VirtualFunctions.docx

In this example, the inherited class has a function that is expected to be overloaded; i.e., the
function in the base class is overridden by the function in the inherited class. If virtual is not...

Sign up to view the full answer

Why Join Course Hero?

Course Hero has all the homework and study help you need to succeed! We’ve got course-specific notes, study guides, and practice tests along with expert tutors.

-

Educational Resources
  • -

    Study Documents

    Find the best study resources around, tagged to your specific courses. Share your own to gain free Course Hero access.

    Browse Documents
  • -

    Question & Answers

    Get one-on-one homework help from our expert tutors—available online 24/7. Ask your own questions or browse existing Q&A threads. Satisfaction guaranteed!

    Ask a Question
Ask a homework question - tutors are online