---
title: "konstruktör-problem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/57444-konstruktör-problem"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "jme"
published: "2002-10-29T21:07:51.000Z"
updated: "2002-10-29T21:59:43.000Z"
replies: 2
views: 239
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/57444-konstruktör-problem"
---

# konstruktör-problem

## #1 — jme, 2002-10-29T21:07Z

Hej!

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:

....\\test.h(19) : warning C4520: 'Time' : multiple default constructors specified

Och vad jag vet så är 

Time(); en default constructor
Time(int h = 0, int m = 0); är en annan konstruktör

Om jag kommenterar den första konstruktören så fungerar koden. 

i main() så använder jag följande:

Time A; // använder default constructor?
Time B(2, 50); // använder den konstruktör som jag har gjort

Time A; 

är väl samma sak som 

Time A = Time(); ?

Varför kan jag då inte skapa en Time() konstruktör?

Permalänk: https://www.webforum.nu/p/57444

## #2 — Marcus E, 2002-10-29T21:48Z

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.

Permalänk: https://www.webforum.nu/p/837620

## #3 — jme, 2002-10-29T21:59Z

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

Permalänk: https://www.webforum.nu/p/837624

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/57444-konstruktör-problem
