#include <iostream>
#include <string>

class DateOfBirth
{
    public:
        DateOfBirth(int d, int m, int y) : day(d), month(m), year(y) {}

        void displayDOB() 
        {    
            std::cout << day << "/" << month << "/" << year;
        }
    private:
        int day;
        int month;
        int year;
};

class Person
{
    public:
        Person(std::string n, DateOfBirth d)       : DOB(d),       name(n) {} //1
        Person(std::string n, int d, int m, int y) : DOB(d, m, y), name(n) {} //2

        const std::string& getName() { return name; }
        DateOfBirth DOB;
    private:
        std::string name;
};

int main()
{
    Person person1("Person1", 1, 1, 1); //Calling (2)
    Person person2("Person2", DateOfBirth(2, 2, 2)); //Calling (1) using temporary
    Person person3("Person3", {3, 3, 3}); //Calling (1) using temporary
}
