   T* pt( new T )
  does it legal?what does it mean?it create  a pointer and call a copy  ctor,doesno't it? or is it just a assignment operator?    
  I guess you can see it at the type T*'s copy constructor, effectively it just means T* pt = new T;   ;  It it legal, but it does not invoke the copy constructor, as what you are constructing a pointer-to-T, not a T. This:T t(otherT);would invoke the copy constructor, since t is a T. Your example:T *t(new T);does not invoke the copy constructor of T, since t is a T*. It's just initializing the pointer's value to the value returned by the new expression, whereas in the first example, t is being initialized as a copy of otherT.   