  No-cloning theorem is fundamental for quantum mechanics and for quantum
information science that states an unknown quantum state cannot be cloned
perfectly. However, we can try to clone a quantum state approximately with the
optimal fidelity, or instead, we can try to clone it perfectly with the largest
probability. Thus various quantum cloning machines have been designed for
different quantum information protocols. Specifically, quantum cloning machines
can be designed to analyze the security of quantum key distribution protocols
such as BB84 protocol, six-state protocol, B92 protocol and their
generalizations. Some well-known quantum cloning machines include universal
quantum cloning machine, phase-covariant cloning machine, the asymmetric
quantum cloning machine and the probabilistic quantum cloning machine etc. In
the past years, much progress has been made in studying quantum cloning
machines and their applications and implementations, both theoretically and
experimentally. In this review, we will give a complete description of those
important developments about quantum cloning and some related topics. On the
other hand, this review is self-consistent, and in particular, we try to
present some detailed formulations so that further study can be taken based on
those results.
