Это часть моего 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() {
^
Что мне делать? Кажется, что я пытаюсь перегрузить функцию, которая была реализована с использованием макроса, и мое имя функции перегрузки было заменено.
Да, getc - это макрос в вашей ("стандартной") библиотеке. Лучше не использовать его в качестве имени для вашей собственной функции... Чем лучше было бы не быть макросом (но для этого требуется изменить библиотеку).
(вы можете попробовать "mygetc")...
Вы можете # #undefine
определение макроса, но помните, что тогда вы не сможете использовать его в следующем исходном коде.
Макросы не могут быть переопределены.
getc
является функциональным макросом, вы можете сделатьint (Serial::getc)()