implementing operator * in C++
<pre><code>class Rational {

 const Rational operator*(const Rational&amp; rhs) const

  ...
};

 Rational oneHalf(1,2);

 Rational result = oneHalf * 2;   // fine (with non-explicit ctor)
 result          = 2 * oneHalf;  // error! (even with non-explicit ctor)
</code></pre>

<p>It was mentioned by scott meyers in Effective C++ book as below</p>

<p>Even when Rationl's constructor is not explicit, one compiles and one doesnot. Reason is given as below:</p>

<p>It turns out that parameters are eligible for implicit conversion "only if they are listed in the parameter list".</p>

<p>The implicit parameter corresponding to object on which member function is invoked -- the one  "this" points to -- is
 never eligible  for implicit conversions.  That's way first call compiles and the second one doesnot.</p>

<p>My question is what does author mean in above statment "only if they are listed in the parameter list" ? What is parameter list?</p>
