Quote Originally Posted by laserlight View Post
I assume that by "free member function" you mean "free function". A member function wrapper still has access to the class internals, and can cease to be a wrapper after maintenance. In other words, you do not increase encapsulation by providing syntactic sugar.
Yes, I meant free function, of course.
But if the wrapper member starts to divulge from the free function, it means the free function must be updated, as well, since seeing as if there was no member from the beginning the functionality that is required simply doesn't exist.

The concept of free functions is to increase encapsulation and to protect the class against changes, and to increase code reuse...
So what are the purposes of member functions? To provide the functionality that the free members lack?

Are you referring to one approach used in Java: the use of multiple inheritance with pure interfaces? If so, I think that this is less useful in C++ due to the template mechanism, particularly so when the C++0x concept of a concept comes into play.
Yes, the java method... but C++0x seems to add some more things that would require a little reschooling when it comes out and is supported I think.
I don't know very much about the feature, paradigms or the like that will show up in C++0x.