Okay I got a pretty simple assignment.
I got these two constructors for class Person:
Person( const string &, const string &, const string &a
According to the C++ Standard
4 A default constructor for a class X is a constructor of class X that can be called without an argument.
From your post it is not clear what default values you are speaking about. Neither of your declarations is the default constructor.
If you are speaking about default arguments as in the declaration
Person( const string & = "", const string & = "", const string & = "",
const string & = "" );
Then this declaration is a declaration of the default constructor because it can be called without any explicitly specified argument.
It is interesting to note that the same constructor can be a default constructor and a non-default constructor at the same time. At least the C++ Standard does not say anything that forbids this.
For example
struct A
{
A( int x );
int x;
};
A a1; // error: there is no default constructor
A::A( int x = 0 ) : x( x ) {}
A a2; // well-formed there is a default constructor.