Я попытался найти ответ на этот вопрос, но ничего не нашел. Я пытаюсь создать класс статических методов, поэтому я могу передать указатель на функцию SPI::transmitData()
, который позже позвоню с помощью SPI::call()
. Тем не менее, я получаю сообщение об ошибке:Хранение указателя функции для последующего использования
unresolved symbol SPI::mycallback, first referenced in ./spi.obj
spi.h:
#ifndef SPI_H_
#define SPI_H_
#include "msp430g2553.h"
class SPI {
public:
typedef void (*foo)(void);
static foo mycallback;
static void transmitData(unsigned char data, foo callback);
static void call();
};
#endif /* SPI_H_ */
spi.cpp:
#include "spi.h"
void SPI::transmitData(unsigned char data, foo callback) {
mycallback = callback; // causes error
UCA0TXBUF = data;
}
void SPI::call() {
//SPI::mycallback();
}
Я пытался возиться с ним и ошибки исчезает, когда я комментирую выделенную строку. Не уверен, что происходит.
* Facepalm * Я попытался поставить эту строку в заголовок и получает ошибку переопределения. Спасибо, первый день знакомства с C++ был грубым. – JustcallmeDrago
@ JustcallmeDrago приветствую вас, рад, что помог. – billz
@ JustcallmeDrago, тогда вы должны принять ответ ;-) –