class X { public: virtual void f1() = 0; virtual void f2() = 0; }; class Y : public X { public: virtual void f1(); }; // Now which of these two declarations are valid int main () { X x1; Y y1; }