#include <iostream>
#include <string>
using namespace std;
class Person
{
    public:
        Person(const string& pN = "no name");
        Person(const Person &p);
        ~Person();
    private:
        string pName;
};

Person::Person(const string& pN) : pName(pN)
{
    cout << "Constructing Person " << pN << '\n';
}

Person::Person(const Person &p) : pName(p.pName)
{
    cout << "Copying " << p.pName << " into its own block\n";
}

Person::~Person()
{
    cout << "Destructing " << pName << '\n';
}

Person fun(Person a)
{
    Person ms(a);
    return ms;
}

int main()
{
    Person p("Amadis");
    Person s = fun(p);
    Person ms("Kansas");
    Person ns = ms;
}
