Witam, jestem właśnie w trakcie tworzenia listy jednokierunkowej na klasach. Narazie są tylko metody dodaj do listy i wypisz listę, ale dodam jeszcze resztę . Kompilator ma problem z deklaracja wskaźnika pierwszy i nie wiem w czym problem, przy podobnej deklaracji w osoba.h, nic nie wyrzuca. Z góry dzięki za pomoc.
Plik nagłówkowy Osoba.h
#ifndef OsobaH
#define OsobaH
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
class osoba
{
public:
string imie;
string nazwisko;
int wiek;
osoba *nastepny;
};
#endif
Plik nagłówkowy Lista.h
#ifndef ListaH
#define ListaH
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
class lista
{
public:
lista();
void dodaj_osobe(string imie, string nazwisko, int wiek);
void usun_osobe(int ktora);
void wyswietl_liste();
private:
osoba *pierwszy;
};
#endif
Plik Lista.cpp
#pragma hdrstop
#include "Lista.h"
#include "Osoba.h"
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
#pragma package(smart_init)
lista::lista()
{
pierwszy=0;
}
void lista::dodaj_osobe(string imie, string nazwisko, int wiek)
{
osoba *nowa= new osoba;
nowa->imie=imie;
nowa->nazwisko=nazwisko;
nowa->wiek=wiek;
if(pierwszy==0)
{
pierwszy = nowa;
pierwszy->nastepny=0;
}
else
{
osoba *pomoc =pierwszy;
while(pomoc->nastepny)
{
pomoc=pomoc->nastepny;
}
pomoc->nastepny=nowy;
nowy->nastepny=0;
}
}
void lista::wyswietl_liste();
{
if(pierwszy==0)
cout<<"Brak elementow";
else
{
int i =1
osoba *pomoc= pierwszy;
while(pomoc->nastepny)
{
cout<<i<<". "<<pomoc->imie<<" "<<pomoc->nazwisko<<" "<<pomoc->wiek<<endl;
pomoc=pomoc->nastepny;
i++;
}
}
I tutaj błędy odnośnie wskaźnika w lista.h
[C++ Error] Lista.h(23): E2303 Type name expected
[C++ Error] Lista.h(23): E2139 Declaration missing ;