How to use polymorphism with base class pointer in C++

1 Answer

0 votes
#include <iostream>

using std::cout;
using std::endl;

class Calc
{
public:
	virtual int add(int a, int b) { return(a + b); };
	virtual int sub(int a, int b) { return(a - b); };
	virtual int mul(int a, int b) { return(a * b); };
};

class Mul : public Calc
{
	int mul(int a, int b) {
		cout << "class Mul: ";

		return(a * b);
	};
};

class ABSSub : public Calc
{
	int sub(int a, int b) { 
		cout << "class ABSSub: ";
		return(abs(a - b)); 
	};
};

int main(void)
{
	Calc *p = new Mul;

	cout << p->add(7, 2) << ' ' << p->sub(12, 4) << endl;
	cout << p->mul(4, 6) << endl;

	p = new ABSSub;
	cout << p->add(1, 2) << endl;
	cout << p->sub(3, 7) << endl; 
	cout << p->mul(7, 8) << endl;

	return 0;
}


/*
run:

9 8
class Mul: 24
3
class ABSSub: 4
56

*/

 



answered Mar 10, 2018 by avibootz

Related questions

1 answer 171 views
1 answer 182 views
2 answers 179 views
179 views asked Mar 31, 2018 by avibootz
1 answer 175 views
...