Program do tematu Konstruktor kopiujący - Folder Konstr8
#include <conio.h> //do getch()
#include <stdio.h> //do printf()
#include <string.h> //do strcpy()
class mnozenie //obiektami tej klasy będą iloczyny liczb
{ //składniki prywatne
float liczba1, liczba2; //cechy - dwie liczby
float wynik; //cecha - wynik mnożenia
char nazwa[25]; //dodatkowy napis
public: //składniki publiczne
void wypisz()
{ printf("\n\n\tNazwa: %25s Wynik: %10.2f\n",nazwa,wynik); }
//metoda wypisze na ekran wynik i nazwę
void pomnoz()
{ wynik=liczba1*liczba2; } //ta metoda pomnoży nasze dwie liczby
mnozenie(float l1, float l2, char *n)
{ liczba1=l1; liczba2=l2; pomnoz(); strcpy(nazwa,n); wypisz(); }
//to, jak widzisz chociażby po nazwie, jest konstruktor
mnozenie(mnozenie &wzor); //a to deklaracja konstruktora kopiującego
}; //koniec definicji klasy
mnozenie::mnozenie(mnozenie &wzor) //definicja konstruktora kopiującego
{
liczba1=wzor.liczba1; //pierwsza liczba ma być taka sama jak jej wzór
liczba2=wzor.liczba2; //to samo w przypadku drugiej liczby
strcpy(nazwa,"Konstruktor kopiujacy...");
//zamiast nazwy będziemy wpisywać ciąg Konstruktor kopiujący
pomnoz(); //wywołujemy funkcję do mnożenia liczb
wypisz(); //wypisujemy na ekran
} //koniec definicji konstruktora kopiującego
main() //funkcja główna main
{ printf("\nStworzmy pierwszy obiekt..."); //komunikat
mnozenie obiekt1(2,4.5,"Pierwsze mnozenie"); //tworzymy obiekt klasy mnozenie
printf("\nA teraz uzyjmy konstruktora kopiujacego..."); //komunikat
mnozenie obiekt2(obiekt1);
//Używamy konstruktora kopiującego do zainicjalizowania kolejnego obiektu.
//Jego cechy będą miały dokładnie te same wartości jak cechy pierwszego obiektu.
//Oczywiście poza cechą nazwa!
printf("\nMoze jeszcze jeden obiekt..."); //komunikat
mnozenie obiekt3(3.5,4,"Drugie mnozenie");
//tworzymy trzeci obiekt przy użyciu zwykłego konstruktora
printf("\nA teraz obiekt bedacy jego kopia..."); //komunikat
mnozenie obiekt4(obiekt3); //czwarty obiekt to kopia trzeciego
getch();
}