using namespace std;

class A {
  public:
    double p1, p2;
    virtual double fun(p1,p2) = 0;
};

class B: public A {
  public:
    double fun(p1,p2) {
    	cout << p1+p2;
	};
};

class C: public A {
  public:
    double fun(p1,p2) {
		cout << p1-p2;
	};
};

void proc(A** a) {
	a[0]->fun();
}

int main() {
  B b;
  C c;
  A* a[2];
  a[0]=&b;
  a[1]=&c;

  proc(a);
}