#include <iostream>
using namespace std;

class Base
{
	public:
	virtual void print(){cout<<"Base virtual"<<endl;}
	void nonvirt_print(){cout<<"Base"<<endl;}
};

class Derived : public Base
{
	public:
	virtual void print() override {cout<<"Derived virtual"<<endl;} 
	void nonvirt_print(){cout<<"Derived"<<endl;}
};

int main() {
	Derived *derived_arr[100];
	for(int i=0;i<100;++i)
		derived_arr[i] = new Derived();
	Base *base_arr[100];
	for(int i=0;i<100;++i)
		base_arr[i]=derived_arr[i];
	base_arr[10]->nonvirt_print(); //base
	base_arr[10]->print(); //derived virtual
	return 0;
}