Programowanie (obiektowe) cz.12 Pliki nagłówkowe. Konstruktor
ZMIENIAMY ZASADY GRY Tworzymy dwa pliki, z których jeden będzie zawierał kod, a drugi definicje klas i funkcji składowych naglowek.h main.cpp
PLIK NAGŁÓWKOWY Plik nagłówkowy - plik zawierający definicje klas, funkcji innych elementów programu, które zazwyczaj umieszczaliśmy wcześniej na początku programu. Rozszerzenie - to zazwyczaj h - w odróżnieniu od nazwy pliku głównego, który ma rozszerzenie cpp na następnej stronie kod pliku nagłówkowego:
#include <iostream> #include <string.h> using namespace std; class samochod private: char markasamochodu[20]; char lakierkolor[20]; char rodzajlakieru[20]; char rodzajsilnika[20]; int predmax; public: int ilewbaku; int stanlicznika; void ustawparametry(char *marka, char *kolor, char *lakier, char *silnik, int predkosc); void opispojazdu(); };//koniec definiowania klasy void samochod::ustawparametry(char *marka, char *kolor, char *lakier, char *silnik, int predkosc) strcpy(markasamochodu, marka); strcpy(lakierkolor, kolor); strcpy(rodzajlakieru, lakier); strcpy(rodzajsilnika, silnik); predmax=predkosc; }; void samochod::opispojazdu() cout<<"\n\nparametry FABRYCZNE\n"; cout<<"\nmarka smochodu: "<<markasamochodu; cout<<"\nkolor lakieru: "<<lakierkolor; cout<<"\nrodzaj lakieru: "<<rodzajlakieru; cout<<"\nrodzaj silnika: "<<rodzajsilnika; cout<<"\npredkosc maksymalna: "<<predmax; cout<<"\n\nparametry INDYWIDUALNE\n"; cout<<"\nbenzyny w baku: "<<ilewbaku; cout<<"\nstan licznika: "<<stanlicznika; cout<<endl; }
A TERAZ PLIK GŁÓWNY PROGRAMU #include <iostream> #include "naglowek.h" using namespace std; int main () } /*Przystepujemy do tworzenia samochodu dla Pawla*/ // najpierw tworzymy obiekt o nazwie pawel,ktory jest typu samochod samochod pawel; //ustawiamy parametry fabryczne pawel.ustawparametry("fiat", "niebieski", "metalik", "diesel", 250); /*koniec tworzenia samochodu*/ pawel.ilewbaku=30; //ustawiamy ile w baku benzyny pawel.stanlicznika=20000;//ustawiamy stan licznika, bo idziemy sprzedac do komisu pawel.opispojazdu(); //wyswielamy opis pajazdu
KONSTRUKTOR Jeżeli chcemy utworzyć nowy obiekt znanej nam klasy int oraz przypisać mu wartość np. 50 to robimy to tak: int a; a=50; ---------------------------------------------------------- lub 2 sposób piszemy za jednym zamachem: int a=50;
A JAK TWORZYMY NASZE OBIEKTY? samochod pawel; pawel.ustawparametry("fiat", "niebieski", "metalik", "diesel", 250); ---------------------------------------------------------- ale nie możemy napisać w jednej linii: samochod pawel=samochod("fiat", "niebieski", "metalik", "diesel", 250);
#include <iostream> #include <string.h> using namespace std; class samochod private: char markasamochodu[20]; char lakierkolor[20]; char rodzajlakieru[20]; char rodzajsilnika[20]; int predmax; public: int ilewbaku; int stanlicznika; void ustawparametry(char *marka, char *kolor, char *lakier, char *silnik, int predkosc); void opispojazdu(); };//koniec definiowania klasy void samochod::ustawparametry(char *marka, char *kolor, char *lakier, char *silnik, int predkosc) strcpy(markasamochodu, marka); strcpy(lakierkolor, kolor); strcpy(rodzajlakieru, lakier); strcpy(rodzajsilnika, silnik); predmax=predkosc; }; void samochod::opispojazdu() cout<<"\n\nparametry FABRYCZNE\n"; cout<<"\nmarka smochodu: "<<markasamochodu; cout<<"\nkolor lakieru: "<<lakierkolor; cout<<"\nrodzaj lakieru: "<<rodzajlakieru; cout<<"\nrodzaj silnika: "<<rodzajsilnika; cout<<"\npredkosc maksymalna: "<<predmax; cout<<"\n\nparametry INDYWIDUALNE\n"; cout<<"\nbenzyny w baku: "<<ilewbaku; cout<<"\nstan licznika: "<<stanlicznika; cout<<endl; }
#include <iostream> #include <string.h> using namespace std; class samochod private: char markasamochodu[20]; char lakierkolor[20]; char rodzajlakieru[20]; char rodzajsilnika[20]; int predmax; public: int ilewbaku; int stanlicznika; samochod(char void ustawparametry(char *marka, char *marka, *kolor, char char *kolor, *lakier, char char *lakier, *silnik, char int *silnik, predkosc); int predkosc); void opispojazdu(); };//koniec definiowania klasy void samochod::ustawparametry(char *marka, char *kolor, char *lakier, char *silnik, int predkosc) strcpy(markasamochodu, marka); strcpy(lakierkolor, kolor); strcpy(rodzajlakieru, lakier); strcpy(rodzajsilnika, silnik); predmax=predkosc; }; void samochod::opispojazdu() cout<<"\n\nparametry FABRYCZNE\n"; cout<<"\nmarka smochodu: "<<markasamochodu; cout<<"\nkolor lakieru: "<<lakierkolor; cout<<"\nrodzaj lakieru: "<<rodzajlakieru; cout<<"\nrodzaj silnika: "<<rodzajsilnika; cout<<"\npredkosc maksymalna: "<<predmax; cout<<"\n\nparametry INDYWIDUALNE\n"; cout<<"\nbenzyny w baku: "<<ilewbaku; cout<<"\nstan licznika: "<<stanlicznika; cout<<endl; }
#include <iostream> #include <string.h> using namespace std; class samochod private: char markasamochodu[20]; char lakierkolor[20]; char rodzajlakieru[20]; char rodzajsilnika[20]; int predmax; public: int ilewbaku; int stanlicznika; samochod(char void ustawparametry(char *marka, char *marka, *kolor, char char *kolor, *lakier, char char *lakier, *silnik, char int *silnik, predkosc); int predkosc); void opispojazdu(); };//koniec definiowania klasy void samochod::samochod(char samochod::ustawparametry(char *marka, char *marka, *kolor, char char *kolor, *lakier, char char *lakier, *silnik, char int *silnik, predkosc) int predkosc) strcpy(markasamochodu, marka); strcpy(lakierkolor, kolor); strcpy(rodzajlakieru, lakier); strcpy(rodzajsilnika, silnik); predmax=predkosc; }; void samochod::opispojazdu() cout<<"\n\nparametry FABRYCZNE\n"; cout<<"\nmarka smochodu: "<<markasamochodu; cout<<"\nkolor lakieru: "<<lakierkolor; cout<<"\nrodzaj lakieru: "<<rodzajlakieru; cout<<"\nrodzaj silnika: "<<rodzajsilnika; cout<<"\npredkosc maksymalna: "<<predmax; cout<<"\n\nparametry INDYWIDUALNE\n"; cout<<"\nbenzyny w baku: "<<ilewbaku; cout<<"\nstan licznika: "<<stanlicznika; cout<<endl; }
DZIAŁANIE KONSTRUKTORA #include <iostream> #include "naglowek.h" using namespace std; int main () //Od razu tworzymy obiekt i ustawiamy parametry fabryczne samochod pawel=samochod("fiat", "niebieski", "metalik", "diesel", 250); /*koniec tworzenia samochodu*/ pawel.ilewbaku=30; //ustawiamy ile w baku benzyny pawel.stanlicznika=20000;//ustawiamy stan licznika, bo idziemy sprzedac do komisu pawel.opispojazdu(); //wyswielamy opis pajazdu }