), например:

я есть массив объектов

Passenger travellers[] = {
    Passenger(nullptr, "Toronto", 2018, 4, 20),
    Passenger("", "Toronto", 2018, 4, 20),
    Passenger("John Smith", nullptr, 2018, 4, 20),
    Passenger("John Smith", "", 2018, 4, 20),
    Passenger("John Smith", "Toronto", 2018, 4, 20), // valid
    Passenger("John Smith", "Toronto", 2028, 4, 20),
    Passenger("John Smith", "Toronto", 2014, 4, 20),
    Passenger("John Smith", "Toronto", 2020, 12, 31), // valid
    Passenger("John Smith", "Toronto", 2018, 40, 20),
    Passenger("John Smith", "Toronto", 2018, 0, 20),
    Passenger("John Smith", "Toronto", 2017, 1, 1), // valid
    Passenger("John Smith", "Toronto", 2018, 4, 0),
    Passenger("John Smith", "Toronto", 2018, 4, 32),
    Passenger(nullptr, nullptr, 0, 0, 0),
    Passenger()
};

и мои конструкторы:

конструктор по умолчанию

Passenger::Passenger() {
    p_name[0] = '\0';
    p_dest[0] = '\0';

    // destination date
    d_yy = 0;
    d_mm = 0;
    d_dd = 0;
}

И мой другой конструктор с параметрами:

Passenger::Passenger(const char *name, const char *destination, int year, int month, int days) {

    if (name != nullptr && destination != nullptr && name[0] != '\0' && destination[0] != '\0') {
        if (year >= 2017 && year <= 2020 && month >= 1 && month <= 12 && days >= 1 && days <= 31) {
            strncpy(p_name, name, 32);
            strncpy(p_dest, destination, 32);
            d_yy = year;
            d_mm = month;
            d_dd = days;
        }
        else 
            Passenger();
    }
    else
        Passenger();
}

Проблема заключается в том, что остальные объекты должны возвращать «недопустимый», но самый первый объект возвращает «действительный», хотя он имеетnullptr&nbsp;стоимость. Кто-нибудь знает, что я делаю не так?