I have a class named Radio, and I want to be able to inherit from a class named Serial, or a class named Stream, depending on how the object is created. I was thinking this could be done with templates like:

```
template<class InterfaceType>
class Radio : public InterfaceType
{
    ...
};

```

and create the object like

```
Radio<Serial> serialRadio;
Radio<Stream> streamRadio;

```

is this a good idea?

And in my implementation file where I define the functions in the class, I'm getting errors like:

```
radio.cpp:52:6: error: ‘template<class InterfaceType> class Radio’ used without template parameters
 void Radio::mavlinkReceiveByte(uint8_t data) {
      ^~~~~

```