#include <iostream>
#include <memory>
using namespace std;
class animal{
public:
virtual ~animal() = default;
virtual void sound() = 0;
};
class cat: public animal{
public:
void sound() override{
cout<<"Miaaaaau!\n";
}
};
class dog: public animal{
public:
void sound() override{
cout<<"Hau hau!\n";
}
};
class factory{
public:
virtual ~factory() = default;
virtual unique_ptr<animal> createanimal() = 0;
};
class catfactory : public factory{
public:
unique_ptr<animal> createanimal() override{
return make_unique<cat>();
}
};
class dogfactory : public factory{
public:
unique_ptr<animal> createanimal() override{
return make_unique<dog>();
}
};
int main() {
catfactory stworzkota;
unique_ptr<animal> kot = stworzkota.createanimal();
kot->sound();
dogfactory stworzpsa;
unique_ptr<animal> pies = stworzpsa.createanimal();
pies->sound();
return 0;
}
To embed this project on your website, copy the following code and paste it into your website's HTML: