#include <iostream>
#include <string>
#include <memory>
using namespace std;

class postac{
    public:
    string imie;
    int wiek;

    postac(string i, int w) : imie(i), wiek(w){}
    virtual ~postac() = default;

    virtual unique_ptr<postac> clone() const = 0;
};
class dziewczyna : public postac{
    public:
    dziewczyna(string i, int w) : postac(i, w){}
    
    unique_ptr<postac> clone() const override{
        return make_unique<dziewczyna>(*this);
    }
};
int main() {
    auto wzor = make_unique<dziewczyna>("Klaudia",14);
    auto kopia = wzor->clone();
    auto kopia2 = wzor->clone();

    kopia->imie = "Wiktoria";
    kopia->wiek = 17;

    kopia2->imie = "Dominika";
    kopia2->wiek = 13;

    cout<<kopia->imie<<" ma "<<kopia->wiek<<" lat.\n";
    cout<<kopia2->imie<<" ma "<<kopia2->wiek<<" lat.\n";
    return 0;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: