其他分享
首页 > 其他分享> > c-对静态成员变量的未定义引用

c-对静态成员变量的未定义引用

作者:互联网

我有一个静态成员的类.它也是我程序中其他几个类的基类.这是它的头文件:

#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,它返回对’yarlObject :: YarlObject :: nextID链接器错误的三个未定义引用.如果将构造函数中的nextID短语更改为nextID,则只会收到一个错误,如果将其更改为1,则它可以正确链接.我想这很简单,但是怎么回事?

解决方法:

确保您针对生成的.o文件进行链接.仔细检查makefile.

标签:c,static-members
来源: https://codeday.me/bug/20191012/1897205.html