#include <iostream>
#include <string>
#include <vector>
#include <memory>

class Osoba
{
public:
	Osoba(std::string const& imie, std::string const& nazwisko, int wiek) :
		imie_(imie), nazwisko_(nazwisko), wiek_(wiek) { std::cout << "Osoba::Osoba\n"; }

	~Osoba() { std::cout << "Osoba::~Osoba\n"; }

	void wypisz() { std::cout << "Imie: " << imie_ << ", Nazwisko: "
							  << nazwisko_ << ", Wiek: " << wiek_ << std::endl; }

private:
	std::string imie_;

	std::string nazwisko_;

	int wiek_;
};

int main()
{
	std::vector<std::unique_ptr<Osoba> > osoby;
	std::cout << "Ile osób.";
	int ile;
	std::cin >> ile;
	for(int i = 0 ; i < ile ; ++i) {
		// tutaj możesz sobie cinować dane i podać je do konstruktora.
		osoby.emplace_back(new Osoba("Franek", "Kowalski", 17));
	}

	std::cout << "Wprowadzono:\n";
	for(auto const& e : osoby)
		e->wypisz();

	return 0;
}
