
Save the following C++ program into a file classes.cpp:
#include <iostream>
using namespace std;
class A {
public:
A() { x = 0;}
void increment() { x++; }
virtual void decrement() { x--; }
void print() {cout << "x = " << x << endl;}
protected:
int x;
};
class B : public A {
public:
void increment() { x = x + 2; }
virtual void decrement() { x = x - 2; }
};
int main() {
A a; // a is an object of class A
A * ptr; // ptr is a pointer to an object of class A
ptr = &a;
ptr -> increment();
ptr -> print();
ptr -> decrement();
ptr -> print();
}
Compile the program classes.cpp, run it. Make sure that the program compiles and runs.
Question 1. In the main function, add an object b of class B. Set the pointer ptr to point to b. Call increment() and decrement() on the object pointed to by ptr, print the object after each call. Which method gets called in each case? Why?
Question 2. Add a protected variable int y to B and a constructor to initialize y to 0. Add a print() method in B so that both x and y are printed. Which print method is called on the object B referenced by ptr? If needed, change method declarations so that the print method of B is called for the B object. What did you need to change and why?
Question 3. Assuming that a is a variable of type A, b is an object of type B, and ptr is the pointer of type A, what would you expect to be printed by the following statement:
a = b;
a.print();
ptr = &a;
ptr -> print();
What gets printed? Why? Please explain the difference in behavior between this example and Question 2.
Question 4. Write a function that takes an object of class A and prints it (don't forget to add the function prototype at the top of the file). Can you pass an object of class B to this function?
Question 5. Write a function that takes an object of class A and returns it. Can you pass an object of class B to this function?
Paste your modified file: classes.cpp and the answers to all questions as the comments in the file online in one document file. Include the questions, program outputs, and your answers in the comment section in the classes.cpp file for each question separately. No screenshots. I need to be able to copy and paste your code to run it. NOTE THAT YOU CAN SUBMIT THE ASSIGNMENT ONLY ONCE WHEN USING Turnitin.. See below the layout format (more consistency for grading):
/*
Question 1. In the main function, add an object b of class B. Set the pointer ptr to point to b. Call increment() and decrement() on the object pointed to by ptr, print the object after each call. Which method gets called in each case? Why?
<program output>
<Your answers to the question>
*/
< Submit only the changed program code for question 1, in this case, the main()>
/*
Quest 2 ........
.......
*/
and so on.

Trending nowThis is a popular solution!
Step by stepSolved in 4 steps with 1 images

- Assignment-3 With the help of a C program show how to typecast a void * to an int * . Attach the code and output and upload the file on classroom.arrow_forward#include <iostream> using namespace std; class A { private: int x; public: A(int _x) { x = _x; } int get() { return x; } }; class B { static A a; public: static int get() { return a.get(); } }; int main(void) { B b; cout << b.get(); return 0; } Excecute and provide the screenshot.arrow_forward#include <iostream> #include <string> #include <cstdlib> using namespace std; template<class T> T func(T a) { cout<<a; return a; } template<class U> void func(U a) { cout<<a; } int main(int argc, char const *argv[]) { int a = 5; int b = func(a); return 0; } Give output for this code.arrow_forward
- In C++ Please: THE PROGRAM CANNOT CONTAIN -> OPERATORS! Create a class AccessPoint with the following: x - a double representing the x coordinate y - a double representing the y coordinate range - an integer representing the coverage radius status - On or Off Add constructors. The default constructor should create an access point object at position (0.0, 0.0), coverage radius 0, and Off. Add accessor and mutator functions: getX, getY, getRange, getStatus, setX, setY, setRange and setStatus. Add a set function that sets the location coordinates and the range. Add the following member functions: move and coverageArea. Add a function overLap that checks if two access points overlap their coverage and returns true if they do. Add a function signalStrength that returns the wireless signal strength as a percentage. The signal strength decreases as one moves away from the access point location. Represent this with bars like, IIIII. Each bar can represent 20% Test your class by writing a…arrow_forwardC programming fill in the following code #include "graph.h" #include <stdio.h>#include <stdlib.h> /* initialise an empty graph *//* return pointer to initialised graph */Graph *init_graph(void){} /* release memory for graph */void free_graph(Graph *graph){} /* initialise a vertex *//* return pointer to initialised vertex */Vertex *init_vertex(int id){} /* release memory for initialised vertex */void free_vertex(Vertex *vertex){} /* initialise an edge. *//* return pointer to initialised edge. */Edge *init_edge(void){} /* release memory for initialised edge. */void free_edge(Edge *edge){} /* remove all edges from vertex with id from to vertex with id to from graph. */void remove_edge(Graph *graph, int from, int to){} /* remove all edges from vertex with specified id. */void remove_edges(Graph *graph, int id){} /* output all vertices and edges in graph. *//* each vertex in the graphs should be printed on a new line *//* each vertex should be printed in the following format:…arrow_forward
- Computer Networking: A Top-Down Approach (7th Edi...Computer EngineeringISBN:9780133594140Author:James Kurose, Keith RossPublisher:PEARSONComputer Organization and Design MIPS Edition, Fi...Computer EngineeringISBN:9780124077263Author:David A. Patterson, John L. HennessyPublisher:Elsevier ScienceNetwork+ Guide to Networks (MindTap Course List)Computer EngineeringISBN:9781337569330Author:Jill West, Tamara Dean, Jean AndrewsPublisher:Cengage Learning
- Concepts of Database ManagementComputer EngineeringISBN:9781337093422Author:Joy L. Starks, Philip J. Pratt, Mary Z. LastPublisher:Cengage LearningPrelude to ProgrammingComputer EngineeringISBN:9780133750423Author:VENIT, StewartPublisher:Pearson EducationSc Business Data Communications and Networking, T...Computer EngineeringISBN:9781119368830Author:FITZGERALDPublisher:WILEY





