Я пытаюсь использовать shiftreg.h с shiftreg.cpp (который я ранее использовал успешно в своем основном файле) в классе и вызывать одну из его функций , К сожалению, не компилируется и дает ошибку: «shiftWrite» не был объявлен в этой области. Я думаю, что я включил каждый заголовочный файл во всех остальных, и они должны найти друг друга. Что происходит не так?Функция вызова, определенная в другом заголовочном файле в классе в C++
Это shiftreg.h:
#ifndef shiftreg_h
#define shiftreg_h
void shiftWrite(uint8_t data);
#endif
И это shiftreg.cpp:
#include "ShiftReg.h"
void shiftWrite(uint8_t data) {
do something;}
Функция shiftWrite, я хочу использовать в зависимости от класса сегментного, как показано ниже, с SegmentDisplay.h
#ifndef SegmentDisplay_h
#define SegmentDisplay_h
#include <ShiftReg/shiftReg.h>
class SegmentDisplay{
public:
void pickNumber(int x);
};
#endif
И SegmentDispplay.cpp:
#include "SegmentDisplay.h"
void SegmentDisplay::pickNumber(int x){
shiftWrite(ONE);}
Все начинается в программе Arduino с:
#include "SegShift.h"
SegmentDisplay dsp();
int main(void){
while(1){
dsp.pickNumber(j);}}
изменение #include на #include в SegmentDisplay.h дает ту же ошибку –
Ezraneut
В этом случае нет причин для '# include' файла' .cpp', или в большинстве случаев. – TartanLlama