Я пытался скомпилировать некоторый код C ++ в XCode, и я получил эту ошибку:
Undefined symbols:
"Editorial::sm_nTotalEditorials", referenced from:
Editorial::AskTotal() in editorial.o
Editorial::~Editorial()in editorial.o
Editorial::~Editorial()in editorial.o
Список следует с еще двумя записями для деструктора и еще четырьмя записями для конструктора (я считаю, что это единственные функции, в которых я использую sm_nTotalEditorials). Я прилагаю определение переменной и функции, в которых я ее использую.
class Editorial
{
private:
static int sm_nTotalEditorials;
...
}
int Editorial::AskTotal() {return sm_nTotalEditorials;}
Editorial::~Editorial()
{
if (!m_pPrev) sm_pFirstEditorial=m_pNext;
if (m_pPrev) (*m_pPrev).SetContext((*m_pPrev).AskPrev(),m_pNext);
if (m_pNext) (*m_pNext).SetContext(m_pPrev,(*m_pNext).AskNext());
sm_nTotalEditorials--;
}
Затем он печатает аналогичную ошибку с другими 3 статическими закрытыми переменными, которые я использую. Должно быть, я все испортил со статическим использованием. Это мой первый код на C ++, поэтому я прошу прощения за любой неправильный синтаксис или за слишком глупый вопрос; Я пытался искать в Интернете, но ошибка, напечатанная XCode, довольно неоднозначна, и согласно учебникам, которые я видел, я использую все, как и должно быть. Кроме того, код достаточно длинный, чтобы напечатать все это, и я вставил части, где, по моему мнению, должна быть ошибка, но опять же я тоже не уверен в этом.