Program do tematu Obiekty lokalne automatyczne - Folder Konstr2
#include <conio.h> //do getch()
#include <stdio.h> //do printf()
#include <string.h> //do strcpy()
class kwiat //obiektami naszej klasy będą kwiaty
{
char nazwa[20]; //cecha - nazwa kwiatka
char kolor[20]; //cecha - kolor
float cena; //cecha - cena
public: //składniki publiczne
void wypisz()
{ printf("\n%10s %10s Cena: %10.2f",nazwa,kolor,cena); }
//metoda wypisuje informacje o kwiatku
kwiat(char *n, char *k, float c) { strcpy(nazwa,n); strcpy(kolor,k); cena=c; wypisz(); }
//a to jest oczywiście konstruktor
}; //koniec definicji klasy
main()
{ printf("\nJestesmy w funkcji main...");
printf("\nZaraz bedziemy mieli pierwszy obiekt..."); //komunikat na początek
kwiat kwiat1("Roza", "Czerwona", 3.78); //definiujemy sobie obiekt klasy kwiat
{ //otwieramy lokalny blok
printf("\nJestesmy teraz w lokalnym bloku...");
printf("\nSkonstruujemy sobie obiekt lokalny automatyczny..."); //komunikat
kwiat kwiat2("Roza", "Biala", 3.40); //konstruujemy lokalny obiekt klasy kwiat
printf("\nSprobujmy odwolac sie z tego bloku do pierwszego obiektu...");
kwiat1.wypisz();
printf("\nZ tym nie ma problemow..."); //odwołujemy się do pierwszego obiektu
printf("\nA teraz odwolamy sie do drugiego obiektu...");
kwiat2.wypisz(); //odwołujemy się do drugiego obiektu
printf("\nZ tym tez nie ma problemow. Ale tylko w tym bloku...");
printf("\nZaraz zamkniemy lokalny blok!"); //informacja
} //zamykamy lokalny blok
printf("\nJestesmy juz poza blokiem..."); //informacja
printf("\nOdwolajmy sie do pierwszego obiektu...");
kwiat1.wypisz();
printf("\nI znowu zadnych problemow..."); //odwołujemy się do pierwszego obiektu
printf("\nA teraz odwolajmy sie do drugiego - lokalnego...");
//kwiat2.wypisz(); //Po zdjęciu komentarza z tej linii program nie skompiluje się.
printf("\nNiestety, to nam sie nie uda!"); printf("\nPrzeciez ten obiekt juz nie istnieje!");
//Po zakończeniu lokalnego bloku obiekty lokalne automatyczne są likwidowane.
getch();
}