在C ++中重载宏实现的函数

时间:2014-01-27 01:20:44

标签: c++ macros operator-overloading

这是我的C ++源代码的一部分。

int Serial::getc() {
return std::getchar();
}

编译时,我收到此错误:

In file included from Serial.cpp:2:0:
Serial.cpp:9:13: error: no ‘int Serial::_IO_getc()’ member function declared in 
class ‘Serial’
int Serial::getc() {
^

我该怎么办?似乎我正在尝试重载使用宏实现的函数,并且我的重载函数的名称已被替换。

2 个答案:

答案 0 :(得分:0)

您可以#undefine宏,但请注意,您将无法在后续源代码中使用它。

使用宏无法覆盖自身。

答案 1 :(得分:0)

是的,getc是您的(“标准”)库中的一个宏。更好的是不要将它用作你自己的函数的名称...更好的是它不是一个宏(但这需要修改库)。

(你可以试试“mygetc”)......