Warum ist eindeutiger (Standard) Konstruktor aufgrund von Überladung kein Fehler oder zumindest eine Warnung?
Posted: 03 Apr 2025, 04:11
Die folgende Klasse kompiliert gut: < /p>
. Vielleicht fehlt mir etwas.
Danke!
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
Danke!