Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 带内联析构函数的未定义引用_C++ - Fatal编程技术网

C++ 带内联析构函数的未定义引用

C++ 带内联析构函数的未定义引用,c++,C++,我有一个内联构造函数和析构函数的类,我还有一个用于该类的静态方法。我在内联析构函数中调用了该静态方法,但该静态方法的未定义引用出现了链接器错误。我很确定它是编译的,并且与对象链接。这是密码 // CFoo.h namespace barname { class CFoo { public: CFoo(); ~CFoo(); static void fooMethod(); }; inline CFoo::CFoo() { } inline CFoo::~CFoo()

我有一个内联构造函数和析构函数的类,我还有一个用于该类的静态方法。我在内联析构函数中调用了该静态方法,但该静态方法的未定义引用出现了链接器错误。我很确定它是编译的,并且与对象链接。这是密码

// CFoo.h
namespace barname {
class CFoo
{
public:
    CFoo();
    ~CFoo();

    static void fooMethod();
};

inline CFoo::CFoo()
{
}

inline CFoo::~CFoo()
{
    fooMethod();
}
}

// SomeOtherSource.cpp
namespace barname
{
    void CFoo::fooMethod()
    {
    }
}

这段代码似乎很好,并且可以编译。

这里是对代码的一个稍微修改的工作版本

#包括
#包括
#包括
名称空间名称
{
类CFoo
{
公众:
CFoo();
~CFoo();
静态方法();
};
内联CFoo::CFoo()
{
}
内联CFoo::~CFoo()
{
方法();
}
void CFoo::foodmethod()
{
标准::cout
在其他文件中

#include "CFoo.h"
namespace barname
{
void CFoo::fooMethod()
{
}
}

编译在XCook 4.6

<代码>内联CQuoY()::CcHook()/<代码>和代码>内联CQuoY()::~cCythor()/代码>甚至不是有效的C++。如果你花时间去SSCCE,谢谢,并且请尝试发布实际编译的实际代码,因为与你的问题的评论相反,这不。(并且固定,这在CLAN上编译得很好)。我无法重现您所描述的问题(在修复语法错误后)。上面的SSCCE似乎未能捕获原始代码中的重要内容。是的。但fooMethod是在另一个源文件中定义的。
#ifndef con001_CFoo_h
#define con001_CFoo_h

namespace barname {
class CFoo
{
public:
    CFoo();
    ~CFoo();


    static void fooMethod();
};
inline CFoo::CFoo()
{

}

inline CFoo::~CFoo()
{

}

}

#endif
#include "CFoo.h"
namespace barname
{
void CFoo::fooMethod()
{
}
}