Works for me.

For the function override in the first place though, the names of the 
parameters are ignored, right?
--
- Milan

On Jun 18, 2014, at 13:01 , Botond Ballo <bba...@mozilla.com> wrote:

>> One quick question - is this covered in the proposal?
>> 
>> class Base {
>>  virtual int f( int ba, char bb );
>> };
>> 
>> class Derived {
>>  virtual int f( int da, char db );  // is this allowed and does it count
>>  like a base class function override?
>> };
>> 
>> Derived d;
>> Base* b = &d;
>> 
>> // What is the validity of the four cases below?
> 
> The proposal does not address this explicitly. I think the following 
> behaviour falls out naturally:
> 
>> b->f( ba=0, bb=‘c’ );   // valid
>> b->f( da=0, db=‘c’ );   // invalid (1)
>> d.f( ba=0, bb=‘c’ );    // invalid (2)
>> d.f( da=0, db=‘c’ );    // valid
> 
> since (1) name lookup and overload resolution is based on the static
> type (since they happen at compile time), and (2) when the static type
> is the derived type, the derived name hides the base name.
> 
> I think this behaviour is reasonable. I'm open to being convinced
> otherwise.
> 
> Cheers,
> Botond

_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to