Topic: Co-variant parameters and return types


Author: schmidt@tango.cs.wustl.edu (Douglas C. Schmidt)
Date: 8 Dec 1994 22:55:38 -0600
Raw View
Hi,

 Please indulge me for a moment with a question about the
ANSI/ISO committee's latest policy with respect to co-variant
parameters and return types.

 From my understanding, the current WP allows co-variant
return types, e.g.,

----------------------------------------
class Base
{
public:
 virtual Base *clone (void) const;
};

class Derived : public Base
{
public:
 // Overrides Base::clone.
 virtual Derived *clone (void) const;
};
----------------------------------------

However, is the following co-variance on parameter types also allowed?

----------------------------------------
class Base
{
public:
 virtual int clone (Base *&) const;
};

class Derived : public Base
{
public:
 // Overrides Base::clone?
 virtual int clone (Derived *&) const;
};
----------------------------------------

Thanks,

 Doug
--
Dr. Douglas C. Schmidt    (schmidt@cs.wustl.edu)
Department of Computer Science, Washington University
St. Louis, MO 63130. Work #: (314) 935-7538; FAX #: (314) 935-7302
http://www.cs.wustl.edu/~schmidt/




Author: jason@cygnus.com (Jason Merrill)
Date: Fri, 9 Dec 1994 19:42:43 GMT
Raw View
>>>>> Douglas C Schmidt <schmidt@tango.cs.wustl.edu> writes:

> However, is the following co-variance on parameter types also allowed?

Nope.

Jason