 <p>It sounds like you've defined the copy constructor without defining any other constructor.</p> <p>Once you declare an constructor explicitly, the compiler no longer provides a default constructor for you. Consequently, you no longer have a mechanism to construct an object of the class in the first place (and therefore wouldn't be able to copy it).</p>