Should operator overload methods be virtual?
Steven Schveighoffer
schveiguy at yahoo.com
Tue Dec 1 06:16:57 PST 2009
On Fri, 27 Nov 2009 18:32:21 -0500, Walter Bright
<newshound1 at digitalmars.com> wrote:
> Making them not virtual would also make them not overridable, they'd all
> be implicitly final.
>
> Is there any compelling use case for virtual operator overloads? Keep in
> mind that any non-virtual function can still be a wrapper for another
> virtual method, so it is still possible (with a bit of extra work) for a
> class to have virtual operator overloads. It just wouldn't be the
> default.
I use virtual operator overloads in dcollections. Such as opCat and
opAppend.
collection1 ~= collection2; // 2 different collection types, using
interfaces instead of templates to avoid code bloat.
Also, opApply should be by default virtual, since it's not a true operator.
More information about the Digitalmars-d
mailing list