But so we are clear: Your current approach of an array in the stack does not allow the selection of the constructor. The previous answers are truly correct. I am saying: Instead of an array in the stack, dynamically create one in the heap and construct the objects with operator new.
However phoneCallDirectory[count]->PhoneCall("" , 0 , 0); what do you want to do there? phoneCallDirectory[count] is an object, you access its fields with the dot operator.
If you want to set it to that value, maybe it is a work for the default constructor
Or phoneCallDirectory[count] = PhoneCall("" , 0 , 0);
+1 to the vector, but note that this is not exactly the same, or maybe I don't know how to use the vector.
The vector will use the copy constructor and the user wants to use some other constructor. If I dynamically create the vector myself, my performance will be better than if I used vector, right?
I think the copy ctor is not bypassed in vector<>. :-( I recently read a PPT about custom allocators for use with STL containers and apparently all containers push the item using the copy constructor. The memory allocator objects even have a construct() method that uses the placement new operator to place the copy in the allocated memory.