class Dwarf {
	public:
		Dwarf();
		~Dwarf();
		virtual void whistle() = 0;
		virtual void work() = 0;
		virtual void cook ();
		virtual void clean();
};

class Sleepy : public Dwarf {
	public:
		Sleepy();

	// Some other functions
};

// Which (one or more) of the following functions should be defined for the
// class Sleepy so that objects of class Sleepy can be created (in other
// words, the class Sleepy is not abstract)

// (a) a destructor
// (b) whistle
// (c) work
// (d) cook
// (e) clean
	
Click here for solution