This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: multiple inheritance abiguity



On Jan 19, 2006, at 9:49 AM, John Love-Jensen wrote:
The reason why the duplicate names cause ambiguity is based on the principle
of least surprise. [I'm not sure what the actual name of the principle is
called, this is just my terminology for it.]

My frustration is that whatever ambiguity exists is _manufactured_ by the compiler. There exists only a a single void f(double)--there is no global ambiguity.



Instead of silently selecting one of the two methods (even given, in the
scenario you mentioned, an exact signature match) the compiler bails with an
error.


Silently selecting one of the two methods could cause unexpected behavior.
I wouldn't mind an info or warning message. Sure it'd be annoying, but action could be deferred to deal with more pressing issues. Leave the errors to truly ambiguous cases.


The solution is to explicitly provide one-or-both methods in the derived
class which forwards to the respective parents' method.
Kinda blows apart the whole concept of public inheritance, doesn't it?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]