Thank you @ChristianStieber I had completely missed that I was using a constructor with parameters for the default constructor. :(
class A {
public:
A() : obj(nullptr) {}
A(int*& obj_) : obj(obj_) {}
protected:
int* obj;
};
class B : public A {
public:
B() : A() {}
B(int*& obj_) : A(obj_) {}
};