When the compiler cannot differentiate between two overloaded constructors, they are called A. overloaded B. destructed C. ambiguous D. dubious

overloaded
destructed
ambiguous
dubious

The correct answer is C. ambiguous.

A constructor is a special type of function that is used to create objects. When a constructor is overloaded, it means that there are multiple constructors with the same name but different parameters. If the compiler cannot determine which constructor to call, the error is called an ambiguity error.

Option A is incorrect because overloaded constructors are not necessarily destructed. In fact, they may never be called, depending on how the object is created.

Option B is incorrect because overloaded constructors do not destroy objects. In fact, they are used to create objects.

Option D is incorrect because overloaded constructors are not necessarily dubious. In fact, they can be very useful when you need to create objects with different parameters.