Mam problem...
main.cpp
#include <cstdlib>
#include <iostream>
#include <conio.h>
#include "Klasy.h"
using namespace std;
int main()
{
KlasaBazowa *pKlasa;
pKlasa = new KlasaBazowa;
pKlasa -> Inicjuj(65, 2.8);
pKlasa -> Wypisz();
delete pKlasa;
pKlasa = new KlasaPochodna1;
pKlasa -> Inicjuj(1.8f, 5, true);
pKlasa -> Wypisz();
delete pKlasa;
getch();
return 0;
}
Klasy.h
#include <iostream>
class KlasaBazowa
{
private:
char cLiczba;
protected:
float fLiczba;
public:
virtual void Inicjuj(char c, float f);
virtual void Wypisz();
};
class KlasaPochodna1 : public KlasaBazowa
{
private:
int iLiczba;
bool bCos;
public:
void Inicjuj(float f, int i, bool b);
void Wypisz();
};
Klasy.cpp
#include <iostream>
#include "Klasy.h"
using namespace std;
void KlasaBazowa::Inicjuj(char c, float f)
{
cLiczba = c;
fLiczba = f;
cout << "Baza" << '\n';
}
void KlasaBazowa::Wypisz()
{
cout << "c: " << cLiczba << '\n';
cout << "f: " << fLiczba << '\n' << '\n';
}
void KlasaPochodna1::Inicjuj(float f, int i, bool b)
{
fLiczba = f;
iLiczba = i;
bCos = b;
cout << "Pochodna" << '\n';
}
void KlasaPochodna1::Wypisz()
{
cout << "f: " << fLiczba << '\n';
cout << "i: " << iLiczba << '\n' << '\n';
}
mianowicie po wywołaniu
pKlasa = new KlasaPochodna1;
pKlasa -> Inicjuj(1.8f, 5, true);
w main.cpp wyrzuca mi błąd, że parametry mu nie pasują... Próbowałem też bez wartości bool ale wtedy korzystał z metody klasy bazowej zamiast pochodnej. co jest tu źle bo dopiero zaczynam metody wirtualne?
Pozdrawiam :)