Page 1 of 1

Warum ist eindeutiger (Standard) Konstruktor aufgrund von Überladung kein Fehler oder zumindest eine Warnung?

Posted: 03 Apr 2025, 04:11
by Anonymous
Die folgende Klasse kompiliert gut: < /p>

Code: Select all

class Time {
public:
Time(int h = 0, int m = 0, int s = 0); // constructor with default parameters
Time();                                // default contructor
};
< /code>
aber beim Versuch, den Standardkonstruktor zu verwendentimeMain.cpp: In function ‘int main()’:
timeMain.cpp:28:9: error: call of overloaded ‘Time()’ is ambiguous
28 |    Time any;
|         ^~~
< /code>
Warum ist es möglich, die Klassendefinition zu kompilieren? < /p>
Warum gibt es keinen Fehler? Es gibt nicht einmal irgendetwas mit -Wall 
. Vielleicht fehlt mir etwas.
Danke!