поля этой структуры - static, их нужно заполнить в cpp файле. (такое вот тз)
Сделал таким образом
class SomeClass
{
private:
struct Observation
{
static const cv::Mat DefaultRotationVector;
static const cv::Mat DefaultTranslationVector;
cv::Mat rotationVector = DefaultRotationVector;
cv::Mat translationVector = DefaultTranslationVector;
std::chrono::high_resolution_clock::time_point timestamp;
};
static Observation m_lastObservation;
}
Это хедер файл.
В cpp файле вот так заполняю:
SomeClass::Observation SomeClass::m_lastObservation =
{
cv::Mat(1, 3, CV_64FC1, { 0., 0., 0. }),
cv::Mat(1, 3, CV_64FC1, { 0., 0., -500 })
};
Выбивает ошибку. unresolved external. Что можно сделать?
как-то слишком много типов указано, не уверен, но вроде как-то так должно быть SomeClass::m_lastObservation = {...}
когда из cpp обращается к переменной класса, нужно тип переменной тоже указать
да, верно, давно так не определял)
у SomeClass не стоит ; после }, это только тут ошибка?
я someClass не копировал, я вынес оттуда структуру и переменную
Подключить библиотеку. А лучше - изучать с++ сначала, а лишь потом пытаться его использовать
Обсуждают сегодня