You must create a constructor that gets an instance of SoftSerial passed as an argument.
Why? I mean, why can't I create a new instance INSIDE my new class? (I'm a Java developer, if that helps). More specifically, why can I create it in the header file BUT NOT in the .cpp??
I'm very interested because, even though in this case I found a workaround (as I said, by coding directly into the header file) I have no clue why it works in one way and not the other, so I'm afraid I'll walk into the same problem again.
Why are you doing software serial on the hardware serial port?
Because the hardware serial port in the Arduino UNO comes with a serial-to-usb converter so I can debug its output from my computer using the serial monitor that comes with the arduino IDE. Of course, once it works I'm planning on using it on a different port.