函数重载的调用不明确

时间:2018-09-07 18:33:00

标签: c++

我正在尝试重载print和println函数,但是我不确定如何执行此操作,我正在尝试模拟arduino,例如print和println,下面的函数声明是类的一部分,它们都可以,但是我不能使用void Println(void),它会给我以下错误:重载的Println()的调用不明确

void Println(void);

void Write(char data);
void Print(char data);
void Println(char data);

void Write(uint8_t data);
void Print(uint8_t data = 0, uint8_t base = 10);
void Println(uint8_t data = 0, uint8_t base = 10);

void Write(uint16_t data);
void Print(uint16_t data = 0, uint8_t base = 10);
void Println(uint16_t data = 0, uint8_t base = 10);

我了解为什么会发生错误,但是我不确定该怎么做,我希望能够打印,打印和写入所有数据类型。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

  

我了解为什么会发生错误,但是我不确定该怎么做,我希望能够打印,打印和写入所有数据类型。

从其中一些声明中删除第一个参数的默认值。

void Print(uint8_t data, uint8_t base = 10);
void Println(uint8_t data, uint8_t base = 10);

void Print(uint16_t data, uint8_t base = 10);
void Println(uint16_t data, uint8_t base = 10);