Poprawność kodu z zadań o dziedziczeniu

0

Witam ponownie :).
Jeśli byłby ktoś taki dobry to mógłby ktoś sprawdzić, czy mój kod jest poprawny? Bo robię ćwiczenia z Symfonii C++ i natknąłem się na problem. Dopóki nie chcę utworzyć obiektu w int main() kompilator twierdzi, że program nie ma błędów, jednak kiedy chcę ten obiekt utworzyć wyskakuje błąd:
error C2512: 'podstawowa' : no appropriate default constructor available
Kod wygląda tak:

#include <iostream>

using namespace std;

//////////////--podstawowa--///////////////////////////////////

class podstawowa
{
public:
//----przeładowanie operatora----//
podstawowa & operator=(podstawowa &obiekt);
//----konstruktor kopiujący----//
podstawowa (podstawowa &ab);
//------------------------------
private:
	int alfa;
	int beta;
};
//************************************************************
podstawowa & podstawowa::operator=(podstawowa &obiekt)
{
	alfa = obiekt.alfa;
	beta = obiekt.beta;
	return *this;
}
podstawowa::podstawowa(podstawowa &ab)
{
	alfa = ab.alfa;
	beta = ab.beta;
}

//////////////--pochodna--//////////////////////////////////

class pochodna : public podstawowa
{
private:
	double x;
	double y;
public:
//----przeładowanie operatora----//	
	pochodna & operator=(pochodna &obiekt);
//----konstruktor kopiujący----//
	pochodna(pochodna &ab);
};
//**********************************************************
pochodna & pochodna::operator=(pochodna &obiekt)
{
	(*this).podstawowa::operator=(obiekt);
	x = obiekt.x;
	y = obiekt.y;
	return (*this);
}

pochodna::pochodna(pochodna &ab) : podstawowa(ab)
{
	x = ab.x;
	y = ab.y;
}

////////////////////////////////////////////////////////////////////////////////////////
int main()
{
	podstawowa abc;
	return 0;
}

Natomiast treść zadania to w skrócie coś takiego. Mam stworzyć klasę podstawową, która będzie zawierała operator przypisania i konstruktor kopiujący, a do tego dwa składniki prywatne int. Następnie muszę z tego zrobić klasę pochodną, która również ma swoje operator przypisania i konstruktor kopiujący, ale klasa pochodna musi korzystać z konstruktora i operatora przypisania klasy podstawowej. Szukam i szukam błędu i nie widzę :/. Fakt, że nie za bardzo wiem o co chodzi w tym błędzie, pierwszy raz się z nim spotkałem, a w Internecie jest zazwyczaj o przyjaźni, o której w treści zadania mowy nie ma (albo jest na template, o którym nie mam pojęcia). Tutaj chodzi o to, że nie ma konstruktora innego niż kopiujący?
Z góry bardzo dziękuję :).

1
podstawowa abc;

powoduje wywołanie konstruktora domyślnego - którego u Ciebie nie ma. Powinieneś go zdefiniować.

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