Witam, mam za zadanie skonstruować tablice nieskończoną. Do tego celu używam klasy lista i klasy tablica.
Prosze o wskazanie mi błędu, domyslam się ze jest on gdzieś w wskaznikach z klasy lista do klasy tablica. Z góry dzięki.
oto kod :
#include <iostream>
#include <cstdlib>
using namespace std;
class tablica{
public:
tablica(int rozmiar);
~tablica();
void dodaj_element();
void wypisz_tablice();
void wypisz_element(int index);
private:
int* head;
int rozmiar;
};
tablica::tablica(int roz){
roz=rozmiar;
head=new int[rozmiar];
for(int i=0;i<rozmiar;i++){
head[i]=0;
}
}
tablica::~tablica(){
delete []head;
}
void tablica::dodaj_element(){
int index, wartosc;
head[index]=wartosc;
do{
int i=0;
cout<<"podaj wartosc, jesli chcesz przerwac wcisnij '9'"<<endl;
cin>>wartosc;
head[i]=head[i+1];
} while(wartosc==9);
}
void tablica::wypisz_tablice(){
for(int i=0;i<rozmiar;i++){
cout << " " << head[i];
}
cout << endl;
cout << endl;
}
void tablica::wypisz_element(int index){
if(index<0 || index >=rozmiar){
cout << "nie ma takeigo elementu" << endl;
}
else{
cout << head[index]<< endl;
}
}
class element{
public:
friend class lista;
element(int a);
~element();
private:
int wartosc;
element *next;
};
class lista{
public:
lista();
~lista();
void dodaj_tablice(int a);
void odczyt_tablicy();
private:
tablica *head;
};
element::element(int a){
wartosc=a;
next=NULL;
}
element::~element(){
}
lista::lista(){
head=NULL;
}
lista::~lista(){
int i;
tablica *tmp=head;
tablica *tmp2=head;
while(tmp2!=NULL){
head[i]=head[i+1];
delete []head;
head[i+1]=head[i];
}
}
void lista::dodaj_tablice(int a){
int i;
tablica *nowy=new tablica(a);
nowy[i+1]=head[i];
nowy[i]=head[i];
}
void lista::odczyt_tablicy(){
int i;
tablica *tmp=head;
while(tmp!=NULL){
cout<< tmp << " ";
tmp[i]=tmp[i+1];
}
cout << endl;
}
int main(int argc, char *argv[]){
lista list;
tablica t(7);
int c;
while(c!=9){
cout << "wybierz polecenie:\n";
cout << "1 - dodaj element tablicy\n";
cout << "2 - wypisz elementy tablicy\n";
cin >> c;
switch(c){
case 1:
t.dodaj_element();
break;
case 2:
t.wypisz_tablice();
break;
default:
break;
}
}
system("PAUSE");
return 0;
}