Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <random>
- #include <ctime>
- using namespace std;
- class Animal
- {
- private:
- int varsta, picioare;
- public:
- Animal() {}
- Animal(int varsta, int picioare)
- {
- this->varsta = varsta;
- this->picioare = picioare;
- }
- virtual ~Animal()
- {
- }
- virtual void vorbeste()
- {
- cout << "Animalul vorbeste\n";
- }
- };
- class Caine: public Animal
- {
- private:
- int culoare;
- public:
- Caine(int varsta, int picioare, int culoare): Animal(varsta, picioare)
- {
- this->culoare = culoare;
- }
- void vorbeste()
- {
- cout << "Cainele latra\n";
- }
- void seJoaca()
- {
- cout << "Cainele se joaca\n";
- }
- };
- class Pisica: public Animal
- {
- public:
- void vorbestte()
- {
- cout << "Pisica miauna\n";
- }
- };
- int main()
- {
- srand(time(0));
- Animal * v[100];
- for(int i = 0; i < 100; i++)
- {
- if(rand() % 2 == 0)
- v[i] = new Caine(5, 4, 0);
- else
- v[i] = new Pisica;
- }
- // v[5] este Caine?
- /*dynamic_cast<Caine*>(v[5]);*/ // -> Un pointer de tip caine la v[5], daca v[5] este un caine
- // -> nullptr daca v[5] nu este caine
- Caine * c;
- Pisica * p;
- if(c = dynamic_cast<Caine*>(v[5]))
- {
- cout << "Este caine\n";
- c->seJoaca();
- }
- else if(p = dynamic_cast<Pisica*>(v[5]))
- {
- cout << "Este pisica\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement