>AFIK, polymorphism means that when a method is sent to various kind of >objects, the behavior is determined by the invoked objects themselves. Indeed. Look at your statement carefully, you do not mention whether this has to be done at compile-time or run-time. Method overloading, templates etc are all examples of compile-time polymorphism, simply because the correct code is determined at compile-time. [In c++, it is entirely possible to declare a virtual method as inline for example, and the compiler will inline it when there is no doubt as to which method is going to be called] >What Maurice means is 'method overloading', isn't it? Well, yeah, I did say that...(hint: read then post)