Laboratorium nr 7 kopiujacy ope Nieznany

background image

Podstawy programownia – laboratorium

Katedra Podstaw Informatyki

mgr inż. Barbara Fryc

1

Laboratorium nr 3

Programowanie obiektowe w C++. Konstruktor kopiujący.

Przeciążenie operatorów.

P

RZYKŁAD

:

K

ONSTRUKTOR KOPIUJĄCY

Color (const Color & wzor){

//definicja konstruktora kopiującego

this->r = wzor.r;
this->g = wzor.g;

this->b = wzor.b;
strcpy (this->name, wzor.name);
cout<<”Pracuje konstruktor kopiujacy!!!!”<<endl;


}

//definicja operatora porównania
int operator== (const Color & wzor)
{
if((wz.r ==r) && (wz.g== g)&& (wz.b== b)&&(strcpy(wz.name, name));

return 1;

else

return 0;

}

//definicja operatora wyjścia poza klasą
friend ostream & operator <<(ostream & wy, Color & p)
{
wy<<" x= "<<p.r;

wy<<" x= "<<p.g;
wy<<" x= "<<p.b;

wy<<" y= "<<p.name<<endl;
return wy;
}

background image

Podstawy programownia – laboratorium

Katedra Podstaw Informatyki

mgr inż. Barbara Fryc

2

Z

ADANIA

1. Dla klasy Osoba z poprzedniego zadania opracować :
- konstruktor kopiujący:

Osoba(const Osoba& wzorzec);

- funkcję składową '= =' klasy Osoba do porównywania obiektów.

int operator = = (const Osoba& por);

Funkcja ma zwracać 1 gdy obiekty mają takie same składowe: imie, nazwisko, wiek; wartość 0 w
przeciwnym wypadku. Do porównywania składowych - tablic znaków - użyj funkcji bibliotecznej

strcmp

(

string.h

).


- wpisywania do strumienia wyjściowego dane Osoby. Funkcja powinna być zaprzyjaźniona z klasą
Osoba.

friend ostream& operator << (ostream &str_wy, const Osoba& osoba);

- funkcję operatorową wprowadzającą dane Osoby do strumienia wejściowego, zaprzyjaźniona z klasą
Osoba:

friend istream& operator >> (istream &str_we, Osoba& osoba);

- operator przypisania dla klasy Osoba, którego prototyp ma postać:

Osoba& operator=(const Osoba& wzor);

2. Przetestuj działanie nowych funkcje.

void main()
{

Osoba osoba1;

Osoba osoba3;

Osoba osoba2("Ewa", "Pierwsza", 80, 76.3);

osoba1.zapisz("Jan", "Nowak",0);

osoba2.wypisz();

osoba1.wypisz();

osoba2=osoba1;

cout<<osoba1;

cout<<osoba2;

cout<<"Podaj dane osoby:";

cin>>osoba3;

cout<<osoba3<<endl;

cout<<(osoba3==osoba2);

}


Wyszukiwarka

Podobne podstrony:
Laboratorium nr 1 instr warunko Nieznany
Laboratorium nr 5 wskaYniki Nieznany
Laboratorium nr 8 dziedziczenie Nieznany
Laboratorium nr 4 funkcje cd id Nieznany
Laboratorium nr 3 funkcje id 26 Nieznany
Laboratorium nr 2 tablice id 26 Nieznany
Laboratorium nr 6 klasy id 2617 Nieznany
Laboratorium nr 5 wskaYniki Nieznany
cwiczenia nr 5 Pan Pietrasinski Nieznany
2096 Nr,3 ,Przekroj,Podluzny,1 Nieznany (2)
Geografia nr 2 id 188772 Nieznany
kolokwium nr 1 ze statsystyki o Nieznany (3)
ćwiczenia laboratoryjne nr 2
Cwiczenie nr 8 id 99953 Nieznany
Prezentacja laboratorium nr 2
Laboratorium Podstaw Fizyki id Nieznany
Lista nr 3 id 270070 Nieznany
ef 271 4 2012 zal nr 2 id 15072 Nieznany

więcej podobnych podstron