Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Seweryn_Polimorfizm.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include <iostream>
- #include <fstream>
- #include <string>
- using namespace std;
- class Kontakt {
- private:
- char imie[32];
- char nazwisko[48];
- protected:
- Kontakt(const char* imieVal, const char* nazwiskoVal) {
- strcpy(imie, imieVal);
- strcpy(nazwisko, nazwiskoVal);
- }
- public:
- virtual void Wyswietl() {
- cout << imie << " " << nazwisko << endl;
- }
- };
- class Telefon : public Kontakt {
- private:
- enum Rodzaj
- {
- domowy = 1,
- sluzbowy = 2,
- mobilny = 3
- };
- Rodzaj rodzaj;
- char numer[32];
- public:
- Telefon(const char* imieVal, const char* nazwiskoVal, const Rodzaj rodzajVal, const char* numerVal)
- : Kontakt(imieVal, nazwiskoVal)
- {
- rodzaj = rodzajVal;
- if (sizeof(numerVal) >= 20) {
- strcpy(numer, numerVal);
- }
- }
- virtual void Wyswietl() {
- Kontakt::Wyswietl();
- switch (rodzaj) {
- case 1:
- cout << "Domowy " << numer << endl;
- break;
- case 2:
- cout << "Sluzbowy " << numer << endl;
- break;
- case 3:
- cout << "Mobilny " << numer << endl;
- break;
- default:
- cout << "Nieznany " << numer << endl;
- break;
- }
- }
- };
- class EMail : public Kontakt {
- private:
- char email[128];
- public:
- EMail(const char* imieVal, const char* nazwiskoVal, const char* emailVal)
- : Kontakt(imieVal, nazwiskoVal)
- {
- strcpy(email, emailVal);
- }
- virtual void Wyswietl() {
- Kontakt::Wyswietl();
- cout << email << endl;
- }
- };
- class Adres : public Kontakt {
- private:
- char nazwaMiasta[128];
- char nazwaUlicy[128];
- int numerDomu;
- int numerMieszkania;
- public:
- Adres(const char* imieVal, const char* nazwiskoVal, const char* nazwaMiastaVal, const char* nazwaUlicyVal, const int numerDomuVal, const int numerMieszkaniaVal)
- : Kontakt(imieVal, nazwiskoVal)
- {
- strcpy(nazwaMiasta, nazwaMiastaVal);
- strcpy(nazwaUlicy, nazwaUlicyVal);
- numerDomu = numerDomuVal;
- numerMieszkania = numerMieszkaniaVal;
- }
- virtual void Wyswietl() {
- Kontakt::Wyswietl();
- cout << nazwaMiasta << " " << nazwaUlicy << " " << numerDomu << " " << numerMieszkania << endl;
- }
- };
- int main()
- {
- fstream plik("nazwapliku.txt"); //ZMIEN NAZWE PLIKU!
- if (plik.bad()) {
- cout << "Blad otwarcia pliku" << endl;
- }
- else {
- while (!plik.eof()) {
- //Wszystko co masz zczytac z pliku i w ifach robisz ktory kontruktor ma sie wczytac zaleznie od parametrow!
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement