#include <iostream>

struct MyClass
{
    MyClass() //default ctor
    {
        std::cout << "Constructed" << std::endl;
    }
    MyClass(MyClass const&from) //copy ctor
    {
        std::cout << "Copied" << std::endl;
    }
    ~MyClass() //dtor
    {
        std::cout << "Destructed" << std::endl;
    }
};

void f(MyClass) //pass by value
{
    std::cout << "f" << std::endl;
}

int main()
{
    MyClass mc;
    f(mc);
    std::cout << "End of main" << std::endl;
}
