plik


ÿþLaboratorium nr 7 Temat: Dziedziczenie, tablice obiektów oraz obiekty jako argumenty funkcji 1. Koncepcja dziedziczenia w C++ W C++ istnieje mo|liwo[ definicji wielu klas, przy czym ró|ne klasy mog zawiera tak|e elementy wspólne, np. zmienne czy funkcje skBadowe. W C++ istnieje mo|liwo[ utworzenia pewnych klas ogólnych, które nazywamy klasami bazowymi (base classes). Klasa bazowa zawiera skBadowe, które bd wystpowa z kolei we wszystkich tzw. klasach pochodnych, np. class macierz_integer : public macierz { private: & . public: & . } gdzie klasa macierz_integer jest pochodn klasy bazowej macierz. W przypadku dziedziczenia nale|y zwróci uwag na deklaracje typu public oraz private przed nazw klasy bazowej. # include <conio.h> # include <iostream> # include <stdio.h> # include <stdlib.h> using namespace std; class macierz { public: int x,y; int numer; int wyswietl_i(class itg *M); int wyswietl_f(class flt *M); int wprowadz_i(class itg *M, int w); int wprowadz_f(class flt *M, float w); }; class itg:public macierz { public: int *tab; itg(int nr, int n, int m); ~itg(); }; class flt:public macierz { public: float *tab; flt(int nr, int n, int m); ~flt(); }; int macierz::wyswietl_i(class itg *M){ cout << "\nNumer macierzy=" << numer << endl; for (int i=0; i<x; i++) { for (int j=0; j<y; j++) cout << *(M->tab+y*i+j) << "\t"; cout <<"\n"; }; }; int macierz::wprowadz_i (class itg *M, int w) { for(int i=0;i<x;i++) for(int j=0;j<y;j++) *(M->tab+y*i+j)=w; return 0; }; int macierz::wyswietl_f(class flt *M){ cout << "\nNumer macierzy=" << numer << endl; for (int i=0; i<x; i++) { for (int j=0; j<y; j++) cout << *(M->tab+y*i+j) << "\t"; cout <<"\n"; }; }; int macierz::wprowadz_f (class flt *M, float w) { for(int i=0;i<x;i++) for(int j=0;j<y;j++) *(M->tab+y*i+j)=w; return 0; }; itg::itg(int nr, int n, int m){ x=n; y=m; numer=nr; tab=new int[n*m]; for (int i=0; i<n; i++) for (int j=0; j<m; j++) *(tab+y*i+j)=0; } itg::~itg(){ delete[] tab; }; flt::flt(int nr, int n, int m){ x=n; y=m; numer=nr; tab=new float[n*m]; for (int i=0; i<n; i++) for (int j=0; j<m; j++) *(tab+y*i+j)=0; } flt::~flt(){ delete[] tab; }; int main() { int nr=0; class itg M(++nr,1,1); class itg *A[2]; class flt *B[2]; M.wprowadz_i(&M,1); M.wyswietl_i(&M); for (int i=2;i<4;i++){ A[i]=new itg(++nr,i,i); A[i]->wprowadz_i(A[i],nr); A[i]->wyswietl_i(A[i]); B[i]=new flt(++nr,i,i); B[i]->wprowadz_f(B[i],nr*1.1); B[i]->wyswietl_f(B[i]); }; system("PAUSE"); delete[] A; delete[] B; return 0; } 2. Zadanie: Zmodyfikuj powy|szy program tak, aby istniaBa mo|liwo[ deklaracji  n tablic o kolejno zadanych wymiarach i typach, przy czym program powinien posiada mo|liwo[: " wy[wietlania macierzy o zadanym numerze, " wy[wietlania macierzy wedBug typu (integer, float) " wypeBnienia wybranej macierzy zadan liczb, " zerowanie wybranej macierzy macierzy, Uwaga: Program powinien skBada si z oddzielnych plików, tzn. pliku gBównego oraz plików zdefiniowanych klas, itp. Program powinien posiada krótkie menu wyboru, np.: 1. Utwórz macierz: integer, float 2. Wy[wietl macierz, wg numeru 3. Wy[wietl macierze, wg typu 4. WypeBnij macierz, wg numeru 5. Zeruj macierz, wg numeru 6. itp. 7. 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