Passing a single class instance to another class

I've not read in details but seems the compiler complains that you pass a pointer where it expects a reference

error: no matching function for call to 'Box::Box(Debug*)'

try with

void Puzzle::setup(){
  _debug = Debug();
  _box = Box(_debug);
  _debug.line("Puzzle Setup");
}