Lab cpp 05


Laboratorium nr 5
Temat: Deklaracja konstruktorów oraz destruktorów dla klas. Przekazywanie parametrów do konstruktorów.
1) Konstruktory
Zadaniem konstruktorów jest inicjowanie obiektów. Konstruktory są funkcjami składowymi, które wywoływane są
automatycznie podczas tworzenia obiektu. Nazwa funkcje konstruktora odpowiada nazwie klasy. Funkcja
konstruktora musi być funkcją publiczną (public) i nie powinna zwracać żadnej wartości, np.
klasa::klasa() {...}
C++ posiada możliwość przesłania parametrów do konstruktora obiektu, co rozwiązuje większość problemów na
jakie można się natknąć podczas inicjowania obiektu, np.
klasa::klasa(int x) {...}
...
class klasa obiekt( wartość typu int);
# include
# include
# include
# include
# include
class macierz {
private:
int x,y;
int *tab;
public:
macierz(int n, int m);
int wprowadz(int i, int j, int w);
int wyswietl();
};
macierz::macierz(int n, int m){
x=n;
y=m;
tab=(int *) calloc(n*m,sizeof(int));
for (int i=0; i for (int j=0; j *(tab+y*i+j)=0;
}
int macierz::wprowadz (int i, int j, int w) {
*(tab+y*i+j)=w;
return 0;
};
int macierz::wyswietl(){
cout << "\nZadeklarowana macierz\n";
for (int i=0; i for (int j=0; j cout << "Macierz["<< i <<"][" << j<< "]=" << *(tab+y*i+j) << "\n";
};
int main() {
class macierz A(2,2),B(3,3);
clrscr();
A.wprowadz(1,1,1);
A.wyswietl();
B.wprowadz(1,1,1);
B.wyswietl();
getch();
return 0;
}
2) Destruktory
Podobnie jak konstruktory, destruktory są wywoływane automatycznie w momencie zakończenia wykonywania
operacji na obiekcie/usuwania obiektu. Destruktory mogą np. zwalniać obszar pamięci, który został przydzielony
obiektowi. Destruktor definiuje się w ten sam sposób jak konstruktor, przy czym do jego nazwy dodaje się jedynie
znak ~, np.
klasa::~klasa() {...}
# include
# include
# include
# include
# include
class macierz {
private:
int x,y;
int *tab;
public:
macierz(int n, int m);
~macierz();
int wprowadz(int i, int j, int w);
int wyswietl();
};
macierz::macierz(int n, int m){
x=n;
y=m;
tab=(int*)calloc(n*m,sizeof(int));
for (int i=0; i for (int j=0; j *(tab+y*i+j)=0;
};
macierz::~macierz(){
free(tab);
};
int macierz::wprowadz (int i, int j, int w) {
*(tab+y*i+j)=w;
return 0;
};
int macierz::wyswietl(){
cout << "\nZadeklarowana macierz\n";
for (int i=0; i for (int j=0; j cout << "Macierz["<< i <<"][" << j<< "]=" << *(tab+y*i+j) << "\n";
return 0;
};
int main() {
class macierz A(3,3);
clrscr();
A.wprowadz(1,1,1);
A.wyswietl();
getch();
return 0;
}
Uwaga: W przypadku C++ wszystkie wewnętrzne szczegóły związane z konstruktorem i destruktorem są
obsługiwane przez sam obiekt.
3) Zadanie:
Opracuj program, który będzie definiował obiekty typu  macierz o zadanych wymiarach np. 3x3, oraz posiadał
możliwość dodawania, odejmowania i mnożenia zadeklarowanych macierzy, tzn. A+B , A-B , A*B
Program powinien posiadać krótkie menu wyboru, np.:
1. Utwórz macierz
2. Wprowadz elementy macierzy
3. Wyświetl macierz
4. Dodaj macierze
5. itp.
6. Koniec


Wyszukiwarka

Podobne podstrony:
Lab cpp
Lab cpp
Lab cpp
Lab cpp
Lab cpp
Lab cpp
Lab cpp
Lab cpp
Lab cpp
Lab cpp
Lab cpp
Lab cpp
lab 2
T2 Skrypt do lab OU Rozdział 6 Wiercenie 3
IE RS lab 9 overview
lab pkm 3
CPP (2)
lab chemia korozja

więcej podobnych podstron