mirror of
https://github.com/szymon-jozef/ZUT-notatki.git
synced 2026-10-28 11:10:38 +01:00
bla bla
This commit is contained in:
48
uczelnia/2_semestr/programowanie/laby/lab11/zad5.cpp
Normal file
48
uczelnia/2_semestr/programowanie/laby/lab11/zad5.cpp
Normal file
@@ -0,0 +1,48 @@
|
||||
#include <iostream>
|
||||
#include <typeinfo>
|
||||
|
||||
class Pojazd {
|
||||
public:
|
||||
virtual ~Pojazd() = default;
|
||||
virtual void wydajDzwiekWirtualnie() {} // metoda wirtualna
|
||||
};
|
||||
|
||||
class Samochod : public Pojazd {
|
||||
public:
|
||||
void sygnal() { std::cout << "Sygnał!"; }
|
||||
void wydajDzwiekWirtualnie() override { std::cout << "Sygnał!"; }
|
||||
};
|
||||
|
||||
class Rower : public Pojazd {
|
||||
public:
|
||||
void Dzwonek() { std::cout << "Dzyń dzyń!"; }
|
||||
void wydajDzwiekWirtualnie() override { std::cout << "Dzyń dzyń!"; }
|
||||
};
|
||||
|
||||
class Motocykl : public Pojazd {
|
||||
public:
|
||||
void Warkot() { std::cout << "Wrum wrum!"; }
|
||||
void wydajDzwiekWirtualnie() override { std::cout << "Wrum wrum!"; }
|
||||
};
|
||||
|
||||
class NiepolimorficznyTyp {};
|
||||
class NiepolimorficznyTyp2 : public NiepolimorficznyTyp {};
|
||||
|
||||
void pokazTyp(const Pojazd *p) {
|
||||
const std::type_info &ti = typeid(*p);
|
||||
std::cout << "Rzeczywisty typ: " << ti.name() << std::endl;
|
||||
}
|
||||
|
||||
void pokazTyp2(const NiepolimorficznyTyp *n) {
|
||||
const std::type_info &ti = typeid(*n);
|
||||
std::cout << "Rzeczywisty typ: " << ti.name() << std::endl;
|
||||
}
|
||||
|
||||
int main() {
|
||||
Pojazd p;
|
||||
Samochod s;
|
||||
NiepolimorficznyTyp2 npol;
|
||||
pokazTyp(&p);
|
||||
pokazTyp(&s);
|
||||
pokazTyp2(&npol);
|
||||
}
|
||||
Reference in New Issue
Block a user