Witam wszystkich. Czy moglby mi ktos przerobic ponizszy kod na obiektowy. Chodzi mi o to aby zrobic klase Tab, zmienne wier, kol i **t powinny byc prywatne natomiast wszystkie metody publiczne.

z góry dzieki. Oto kod:

// Scalamie tablic - przyklad scalania tablic dwuwymiarowych
#include <iostream.h>

struct Tab {
unsigned kol; // ilosc kolumn
unsigned wier; // ilosc wierszy
int **t;
};

Tab NewTab(unsigned, unsigned);
void wypelnij(Tab, int);
void drukuj(Tab, char*);
Tab scal(Tab, Tab);
void UsunTab(Tab);
int max(int a, int b) { return (a>b)?a:b; }

int main() {
Tab A = NewTab(3, 8); // 3 wiersze i 8 kolumn
wypelnij(A, 2);
drukuj(A, "Tablica A:");

// Tablica B:
Tab B = NewTab(10, 4); // 10 wierszy i 4 kolumny
wypelnij(B, 5);
drukuj(B, "Tablica B:");

Tab C = NewTab(max(A.wier, B.wier), max(A.kol, B.kol));
C = scal(A, B);
drukuj(C, "Tablica C:");

UsunTab(A);
UsunTab(B);
UsunTab(C);
cin.get();
return 0;
}

Tab NewTab(unsigned wier, unsigned kol) {
Tab T;
T.kol=kol;
T.wier=wier;
T.t = new int*[wier];
for(unsigned i=0; i<wier; ++i)
T.t[i] = new int[kol];
wypelnij(T, 0);
return T;
}

void wypelnij(Tab A, int x) {
for(unsigned i=0; i<A.wier; ++i)
for(unsigned j=0; j<A.kol; ++j)
A.t[i][j] = x;
}

void drukuj(Tab T, char *com) {
cout << com << endl;
for(unsigned i=0; i<T.wier; ++i) {
for(unsigned j=0; j<T.kol; ++j)
cout << T.t[i][j];
cout << endl;
}
cout << endl;
}

void UsunTab(Tab T) {
for(unsigned i=0; i<T.wier; ++i)
delete[] T.t[i];
delete T.t;
}

Tab scal(Tab A, Tab B) {
Tab C = NewTab(max(A.wier, B.wier), max(A.kol, B.kol));
wypelnij(C, 0);
for(unsigned i=0; i<A.wier; ++i)
for(unsigned j=0; j<A.kol; ++j)
C.t[i][j] = A.t[i][j];
for(unsigned i=0; i<B.wier; ++i)
for(unsigned j=0; j<B.kol; ++j)
C.t[i][j] += B.t[i][j];
return C;
}