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ę :).