How to use external (non-class) function to access a virtual function in C++

1 Answer

0 votes
#include <iostream>

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

class base {
public:
	virtual void virtual_function() { cout << "class base" << endl;	}
};

class derived1 : public base {
public:
	void virtual_function() { cout << "class derived1" << endl; }
};

class derived2 : public base {
public:
	void virtual_function() { cout << "class derived2" << endl;	}
};

void f(base &o) {
	o.virtual_function();
}

int main()
{
	base b;
	derived1 d1;
	derived2 d2;

	f(b); 
	f(d1);
	f(d2);

	return 0;
}


/*
run:

class base
class derived1
class derived2

*/

 



answered Apr 4, 2018 by avibootz

Related questions

...