I'm trying to find out the problem with my logic in this function and I can't find it. When stepping through the program, it keeps stopping at the classes constructor, where it gets to the if statement and goes straight to the else which sets the object to a safe empty state. problem is, that the values should pass validation(in this case it's being passed 345 and "Jim") and the compiler should go through the block of code following the if. If anyone can spot where my code is off that would be great

```
    Vacation::Vacation(int n, const char* b) {
    if(num > 0 && num < 999999 && b != nullptr) {
        num = n;
        vtime = 0.0;
        vname = new char[strlen(b) + 1];
        strcpy(vname, b);
    }
    else {
        *this = Vacation();
    }
}

```