Source File: ex56a.cpp

#include <fmt/core.h>
#include <chrono>
#include <thread>
#include <string>
#include <memory>

using std::shared_ptr, std::make_shared;

class Person {
public:
  std::string name;
  int age;

  void talk() {
    fmt::println("I am {} and I am {} years old.",
        name, age);
  }
};

int main(int argc, char* argv[]) {
  Person zed{"Zed", 51};
  Person mary{"Mary", 28};

  zed.talk();
  mary.talk();

  // or using shared_ptr
  auto zed_ptr = make_shared<Person>("Zed", 51);
  auto mary_ptr = make_shared<Person>("Mary", 28);

  zed_ptr->talk();
  mary_ptr->talk();
}