Kod: Zaznacz cały
#include <iostream>
using namespace std;
struct Foo{
string data;
};
void Alokacja(Foo ** &f, int *size)
{
f = new Foo*[*size];
for(int i=0; i<*size; i++)
{
f[i]=new Foo;
}
}
void Inicjacja(Foo ** f, int *size)
{
for(int i =0;i<*size;i++)
{
cout << "Wpisz cos: ";
cin >> f[i]->data;
}
}
void DodawanieNaPozycje(Foo **&f, int *size)
{
int poz;
cout << "Pozycja: "; //liczona od 1, nie od 0
cin >> poz;
if((poz<1) || (poz>(*size)+1))
{
cout << "Niepoprawna wartosc!";
return;
}
poz--;
Foo **x;
x = new Foo*[*size+1];
for(int i =0;i<*size+1;i++)
{
x[i]=new Foo;
}
for(int i =0;i<poz;i++)
{
*x[i]=*f[i];
}
for(int j=poz+1;j<=*size;j++)
{
*x[j]=*f[j-1];
}
cout << "Wpisz cos: ";
cin >> x[poz]->data;
for(int i =0;i<*size;i++)
delete f[i];
delete [] f;
f=NULL;
(*size)++;
f=x;
}
int main()
{
Foo ** f;
int fsize=1;
Alokacja(f,&fsize);
Inicjacja(f,&fsize);
DodawanieNaPozycje(f,&fsize);
DodawanieNaPozycje(f,&fsize);
return 0;
}
Kod: Zaznacz cały
#include <iostream>
using namespace std;
class Foo{
string data;
public:
int fsize=1;
void Alokacja(Foo ** &f);
void Inicjacja(Foo ** f);
void DodawanieNaPozycje(Foo **&f);
Foo()
{
//???
}
};
void Foo::Alokacja(Foo ** &f)
{
f = new Foo*[fsize];
for(int i=0; i<fsize; i++)
{
f[i]=new Foo;
}
}
void Foo::Inicjacja(Foo ** f)
{
for(int i =0;i<fsize;i++)
{
cout << "Wpisz cos: ";
cin >> f[i]->data;
}
}
void Foo::DodawanieNaPozycje(Foo **&f)
{
int poz;
cout << "Pozycja: ";
cin >> poz;
if((poz<1) || (poz>(fsize)+1))
{
cout << "Niepoprawna wartosc!";
return;
}
poz--;
Foo **x;
x = new Foo*[fsize+1];
for(int i =0;i<fsize+1;i++)
{
x[i]=new Foo;
}
for(int i =0;i<poz;i++)
{
*x[i]=*f[i];
}
for(int j=poz+1;j<=fsize;j++)
{
*x[j]=*f[j-1];
}
cout << "Wpisz cos: ";
cin >> x[poz]->data;
for(int i =0;i<fsize;i++)
delete f[i];
delete [] f;
f=NULL;
fsize++;
f=x;
}
int main()
{
Foo ** f;
(*f)->Alokacja(f);
(*f)->Inicjacja(f);
(*f)->DodawanieNaPozycje(f);
(*f)->DodawanieNaPozycje(f);
return 0;
}
No i przy okazji muszę utworzyć konstruktor domyślny, lecz nie za bardzo wiem, co miałbym w nim umieścić, żeby miał on sens?