Witam, mam wykonać program obiektowy, w którym ma być pole statyczne kraj, ktorym ma być Polska dla kazdego obiektu klasy TosobaS. Oraz utwórzyć kilka obiektów różnymi sposobami (zmienna, wskaźnik, referencja), wyświetlić informację o liczbie obiektów, usuwaj obiekty z wyświetleniem informacji o ich aktualnej liczbie.
Ma ktoś pomysł, dlaczego w .cpp w "TosobaS::TosobaS()" wyskakuje mi błąd i jak zrobić to pole statyczne?
MAIN:
#include <iostream>
#include "TosobaS.h"
using namespace std;
int main(int argc, char*argv[])
{
cout<<"liczba obietow:"<<TosobaS::ile()<<endl;
TosobaS *wsk1;
cout<<"liczba obietow:"<<wsk1->ile()<<endl;
wsk1=new TosobaS;
cout<<"liczba obietow:"<<wsk1->ile()<<endl;
TosobaS osobaS;
cout<<"liczba obietow:"<<osobaS.ile()<<endl;
cout<<"liczba obietow:"<<TosobaS::ile()<<endl;
delete wsk1;
cout<<"liczba obietow:"<<wsk1->ile()<<endl;
osobaS.~TosobaS();
cout<<"liczba obietow:"<<wsk1->ile()<<endl;
getch();
return 0;
}
.h :
#ifndef TOSOBAS_H
#define TOSOBAS_H
#include <iostream>
#include "TosobaS.h"
using namespace std;
const int DL=20;
class TosobaS
{
private:
static int liczbaObiektow;//pole statyczne
protected:
char nazwisko[DL], imie[DL];
int wiek;
public:
TosobaS();
TosobaS(char *nazwisko, char *imie, int wiek);
void podajDane();
void wyswietl();
~TosobaS();
static int ile();//metoda statyczna
};
#endif // TOSOBAS_H
.cpp
#include "TosobaS.h"
TosobaS::TosobaS()
{
//ctor
}
TosobaS::~TosobaS()
{
//dtor
}
int TosobaS::liczbaObiektow;
TosobaS::TosobaS()
{
liczbaObiektow++;
}
TOsobaS::TOsobaS(char *wnazwisko, char *wimie, int wwiek)
{
strcpy(nazwisko,wnazwisko); strcpy(imie, wimie); wiek=wwiek;
liczbaObiektow++;
}
void TOsobaS::podajDane()
{
cout << "Podaj nazwisko: "; cin>>nazwisko;
cout << "Podaj imie: "; cin>>imie;
cout<<" "<<endl;
}
void TosobaS::wyswietl()
{
cout<<imie<<""<<nazwisko<<""wiek<<endl;
}
TosobaS::~TosobaS()
{
liczbaObiektow--;
}
int TosobaS::ile()
{
return liczbaObiektow;
}