
C++ Program into a File Classes
- 2nd Nov, 2021
- 16:07 PM
#include
using namespace std;
class A {
public:
A() {
x = 0;
}
void increment() {
x++;
}
virtual void decrement() {
x--;
}
virtual void print() {
cout << "x = " << x << endl;
}
protected:
int x;
};
class B: public A {
public:
B() {
y = 0;
}
void increment() {
x = x + 2;
}
virtual void decrement() {
x = x - 2;
}
/**
* Question 2
*/
void print() {
cout << "x = " << x << ". y = " << y << endl;
}
protected:
int y;
};
void question4(A a) {
a.print();
}
A question5(A a) {
return a;
}
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();
/**
* Question 1:
* In main 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?
*/
cout << "Question 1:" << endl;
B b;
ptr = &b;
ptr->increment();
ptr->print();
ptr->decrement();
ptr->print();
cout << "Question 3:" << endl;
a = b;
a.print();
ptr = &a;
ptr->print();
cout << "Question 4:" << endl;
question4(a);
question4(b);
cout << "Question 5:" << endl;
A c = question5(a);
c.print();
c = question5(b);
c.print();
}