mirror of
https://github.com/szymon-jozef/ZUT-notatki.git
synced 2026-09-07 12:10:40 +02:00
49 lines
1.1 KiB
C++
49 lines
1.1 KiB
C++
#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);
|
|
}
|