неопределенная ссылка на статическую переменную-член - PullRequest
2 голосов
/ 27 мая 2010

У меня есть этот класс, который имеет статический член. это также базовый класс для нескольких других классов в моей программе. Вот его заголовочный файл:

#ifndef YARL_OBJECT_HPP
#define YARL_OBJECT_HPP

namespace yarlObject
{
    class YarlObject
    {
    // Member Variables
        private:
            static int nextID; // keeps track of the next ID number to be used
            int ID; // the identifier for a specific object

    // Member Functions
        public:
            YarlObject(): ID(++nextID) {}
            virtual ~YarlObject() {}

            int getID() const {return ID;} 

    };
}

#endif

и вот его файл реализации.

#include "YarlObject.hpp"

namespace yarlObject
{
    int YarlObject::nextID = 0;
}

Я использую g ++, и он возвращает три undefined reference to 'yarlObject::YarlObject::nextID ошибки компоновщика. Если я изменю фразу ++nextID в конструкторе просто на nextID, тогда я получу только одну ошибку, и если я изменю ее на 1, она будет корректно связываться Я представляю, что это что-то простое, но что происходит?

1 Ответ

1 голос
/ 27 мая 2010

Убедитесь, что вы ссылаетесь на сгенерированный .o файл. Дважды проверьте make-файл.

...