(ref.doc)bs 021194
Next egb 121294
Prev: maxtal 270894
Up: Usenet
Newsgroups: comp.lang.c++
From: [email protected] (Bjarne Stroustrup <9758-26353> 0112760)
Date: Wed, 2 Nov 1994 16:58:59 GMT
[...]
derived::f(int) hides base::f(int,int) so you get
	void g(base* pb, derived* pd)
	{
		pb->f(1);	// ok
		pb->f(1,2);	// ok
		pd->f(1);	// ok
		pd->f(1,2);	// error
	}
A compiler can warn you about the hiding, and some compilers do.
The upcoming standard provides a way of making otherwise hidden base
class functions available in a derived class without re-implementing
them. For example:
	class base {
		// ...
		virtual void f(int i);
		virtual void f(int i, int j);
	};
	class derived {
	public:
		virtual void f(int i); // override base::f(int)
		using base::f;         // make other f's available
	};
Now derived overrides base::f(int) and inherits base::f(int,int)
as is so all of the calls in g() above will work. For more detail,
see Stroustrup: ``The Design and Evolution of C++'' sec17.5. 
	- Bjarne
automatically generated by info2www version 1.2.2.8