Array(const Array &) is an example of a copy constructor. In general the standard syntax for a copy constructor is X::X(X&) , where X is any class name . That is, it is the constructor of class X which takes as its argument a reference to an object of class X. The copy constructor makes a copy of an existing object.