Перегрузка реализованной в макросе функции в C ++

0

Это часть моего 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() {
^

Что мне делать? Кажется, что я пытаюсь перегрузить функцию, которая была реализована с использованием макроса, и мое имя функции перегрузки было заменено.

  • 0
    Я думаю, что было бы полезно написать команду, которую вы используете для компиляции.
  • 0
    Если getc является функциональным макросом, вы можете сделать int (Serial::getc)()
Теги:
operator-overloading
macros

2 ответа

0

Да, getc - это макрос в вашей ("стандартной") библиотеке. Лучше не использовать его в качестве имени для вашей собственной функции... Чем лучше было бы не быть макросом (но для этого требуется изменить библиотеку).

(вы можете попробовать "mygetc")...

0

Вы можете # #undefine определение макроса, но помните, что тогда вы не сможете использовать его в следующем исходном коде.

Макросы не могут быть переопределены.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню