Я не могу на 100% объяснить это поведение - я ожидаю, что вы не напечатаете никаких символов, как это было бы при использовании Returner :: test - но если вы переопределяете функцию в C ++, вам нужно объявитьон виртуален в базовом классе:
class Returner
{
public:
Returner(){}
virtual char test()
{
}
};
Если тест не является виртуальным, строка
Serial.print( retrn.test() );
(вы не имеете в виду retrn->test()
?) просто выберет одну реализацию test
и используйте его всегда.Как и выше, я ожидаю, что это будет пустой Returner::test()
.Вам также может понадобиться сделать Returner :: test abstract
virtual char test() = 0;
или вернуть некоторое значение, если вы оставляете его с телом функции.