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

Programme in C++. Entwicklerforum
Anonymous
 Warum ist eindeutiger (Standard) Konstruktor aufgrund von Überladung kein Fehler oder zumindest eine Warnung?

Post 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!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post