// '.h' file: template <typename T> class X { public: virtual bool a() const = 0; virtual void b(const T&) = 0; virtual T c(); virtual void d() = 0; static void E(); int zero_or_one() const; }; template <typename T> int X<T>::zero_or_one() const {return 0;} template <typename T> class Y : X<T> { public: bool a() const; virtual void b(const T&); T c(); int zero_or_one() const; }; template <typename T> int X<T>::zero_or_one() const {return 1;}
Xclass is abstract?Yclass is polymorphic?Yclass is abstract?bfunction is abstract inX?bfunction is abstract inY?cfunction is abstract inX?cfunction is polymorphic inY?dfunction is polymorphic inX?dfunction is abstract inY?Efunction is a class function forX?Efunction is a class function forY?zero_or_onefunction is polymorphic inX?zero_or_onefunction is redefined inY?