Efter några års inaktivitet på C++ fronten så tänkte jag putsa upp mina kunskaper...
Efter lite pillande så märkte jag att
// Test.h
#ifndef _TEST_H_
#define _TEST_H_
class Time
{
private:
int hours;
int minutes;
public:
Time();
Time(int h = 0, int m = 0);
void AddMin(int m);
void AddHr(int h);
void Reset(int h = 0, int m = 0);
Time operator+(const Time & t) const;
void Show() const;
};
#endif
När jag försöker kompilera koden så får jag bl a följande fel:
När du anger utelämningsvärden för samtliga argument innebär det att samtliga argument kan utelämnas vid anropet.
Time(int h = 0, int m = 0)
kan anropas med både Time(värde1, värde2), Time(värde1) och Time(). Den sistnämnda har samma utformning som en utelämningskonstruktör (default constructor). Därför vet inte kompilatorn vilken av funktionerna som ska anropas när du utelämnar konstruktören, därav felmeddelandet.
Tack för det snabba svaret. Dock han jag rådfråga en kompis som gav samma svar, innan jag läste svaret här.
Exemplet jag försökte köra var tagen ur en bok. Blind som jag är så såg jag inte den lilla skillnaden... Att den första argumentet inte var int h = 0 utan int h
254 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849