#include using namespace std; class Node { public: Node() { } virtual void f1() = 0; virtual int compareTo(Node *n) = 0; }; class MyNode1 : public Node { public: MyNode1() { } void f1() { cout << "MyNode1 \n"; } int compareTo(Node *n) { return 0; } }; class MyNode2 : public Node { public: MyNode2(): Node() { } void f1() { cout << "MyNode2\n"; } int compareTo(Node *n) { return 0; } }; int main() { Node *nodes[2]; nodes[0] = new MyNode1(); nodes[1] = new MyNode2(); for (int i = 0;i < 2;i++) { cout << nodes[i]->compareTo(nodes[i]) << "\n"; nodes[i]->f1(); } return 0; }