On Thursday, 12 July 2012 at 14:42:17 UTC, Ali Çehreli wrote:
On 07/12/2012 07:13 AM, Minas wrote:
Thanks a lot!
So what is the problem with (logical)const? Is it needed that
much? And why some methods (toString(), toHash()) HAVE to be
const? I mean, what's the problem if they aren't?
Here is the problem:
....
(That is why I almost never make abstract member functions
'const' in my C++ coding. Base can't know mutability needs of
the derived.)
Ali
I see. Just because toString() in object is const, so must be in
the derived classes thus limiting them.
So now I understand the solution that Andrei is considering
(removing those from object). I think this is a good thing to do,
those functions don't belong there (I have had some experience
with Java's equals(Object o). All I say is that it sucks.)
In C++, I would use a templated function. If the type didn't
provide those methods it would be a compile error. Nice and clean
:)
Thanks for the reply :)