#include <iostream>
#include <string>

class person {
public:
    person(std::string const& name)
        : name_ { name }
    {
    }
    auto set_name(std::string const& name) -> void
    {
        name_ = name;
    }
    auto get_name() -> std::string const&
    {
        return name_;
    }

private:
    std::string name_;
};

auto main() -> int
{
    person p1 { "Hayden" };
    p1.set_name("Chris");
    std::cout << p1.get_name() << "\n";

    person const p2 { "Hayden" };
    // p2.set_name("Chris"); // WILL NOT WORK... WHY NOT?
    // std::cout << p2.get_name() << "\n"; // WILL NOT WORK... WHY NOT?
}