Problem ze znalezieniem konstruktora

0

Witam, dlaczego kompilator ma problem z dobraniem konstruktora?

/error: no matching function for call to 'abc::abc(abc)'/

Wszystko jasne, jeden przyjmuje typ int, drugi jest domniemany, a trzeci kopiujący. Chciałem zrobić małe doświadczenie z konstruktorem kopiującym.

	#include <iostream>
	using namespace std;
	
	class abc
	{
	public:
	    int zmienna;
	    abc(int a);
	    abc();
	    abc(abc &);
	};
	abc::abc(int a)
	{
	    zmienna = a;
	}
	abc::abc(abc &obiekt)
	{
	    zmienna = 5;
	}
	abc::abc()
	{
	    zmienna = 2;
	}
	int main()
	{
	
 	   abc tablica[3] = { abc(10), abc(), abc(9) };
 	   for(int i = 0; i<3; i++)
	    {
 	       cout << tablica[i].zmienna << endl;
	    }
	    return 0;

	}
1

abc::abc(const abc &obiekt) i do tego abc& operator=(const abs& obiekt).
http://en.cppreference.com/w/cpp/language/rule_of_three

1 użytkowników online, w tym zalogowanych: 0, gości: 1