Witam, mam taki problem. Chciałem napisać program symulujący konto bankowe.
Zawiera 3 klasy, dwie klasy na operację wpłaty i wypłaty (każda osobno) oraz klasa konta, które będzie mieć kontener STL zawierający obiekty klas wpłaty i wypłaty, czyli wszystkie operacje wykonywane na koncie. Wszystkie klasy na szablonach, żeby dało się zrobić konta przystosowane do operacji na liczbach całkowitych jak i niecałkowitych. No i do tego przeciążony operator strumienia, żeby wyświetlić wszystkie operacje wykonywane na koncie.
Próbowałem to zrobić w ten sposób:
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <string>
#include <typeinfo>
#include <exception>
#include <iterator>
#include <iostream>
#include <vector>
using namespace std;
template <typename typ>
class dochod
{
private:
string opis;
typ kwota;
public:
dochod (string _opis,typ _kwota);
};
template <typename typ>
dochod<typ>::dochod (string _opis,typ _kwota)
{
opis=_opis;
kwota=_kwota;
}
template <typename typ>
class zwrot
{
private:
string opis;
typ kwota;
public:
zwrot (string _opis,typ _kwota);
};
template <typename typ>
zwrot<typ>::zwrot (string _opis,typ _kwota)
{
opis=_opis;
kwota=_kwota;
}
template <typename typ>
class konto:public zwrot<typ>, public dochod<typ>
{
private:
std::vector <typ> tablica;
typ kwota;
public:
konto();
typ dodaj (typ operacja)
{
tablica.push_back(operacja);
}
friend ostream& operator << (ostream &wyjscie,const konto<typ> &wyj);
};
template <typename typ>
ostream& operator << (ostream &wyjscie,const konto<typ> &wyj)
{
for (int i=0;i<wyj.tablica.size();++i)
{
wyjscie << wyj.tablica[i] << endl;
}
return wyjscie;
}
template <typename typ>
konto<typ>::konto()
{
kwota=0;
}
int main()
{
konto <int> test;
dochod <int> op1("opis",100);
test.dodaj(op1);
_getch();
return 0;
}
Spróbowałem stworzyć przykładowe konto i wykonać na nim przykładową operację, jednak jest błąd przy używaniu funkcji dodaj.
error C2664: 'konto<typ>::dodaj' : cannot convert parameter 1 from 'dochod<typ>' to 'int'
Czy coś jest źle zrobione?