The parameter of the constructor should be a reference, otherwise the call would never succeed. To call the copy constructor, we'd need to use the copy constructor to copy the argument, but to copy the argument, we'd need to call the copy constructor, and so on indefinitely.