C ++错误对Class :: Function()的未定义引用

我对C ++很陌生,现在我一直坚持这个问题几个小时。 我正在设置一个视频游戏相关体验计算器的基础,但我无法解决这个问题。

main.cpp中

#include <iostream>
#include "Log.h"

using namespace std;

int main()
{
    Log Logs;
    enter code here
    struct ChoppableLog Yew;

    Logs.initialiseLog(Yew, 60, 175);
    return 0;
}

Log.h

#ifndef LOG_H
#define LOG_H

struct ChoppableLog
{
    int level;
    int xp;
};

class Log
{
    public:
        void initialiseLog(struct ChoppableLog &par1_log, int par2_int, int par3_int);
        Log();
};

#endif // LOG_H

Log.cpp

#include "Log.h"
#include <iostream>

using namespace std;

Log::Log()
{

}

void initialiseLog(struct ChoppableLog &par1_log, int par2_int, int par3_int)
{

}

我得到的错误是

C: Users Murmanox Documents C ++ C ++ Projects CodeBlocks Class Files Test main.cpp | 11 |对Log :: initialiseLog(ChoppableLog&,int,int)的未定义引用|

如有必要,我可以发布更多细节。


你必须用它的全名来定义Log::initialiseLog ,如下所示:

void Log::initialiseLog(struct ChoppableLog &par1_log, int par2_int, int par3_int)
{ }

你正在做的是定义一个名为initialiseLog的新的免费函数,而不是定义Log的成员函数。

这会使成员函数未定义,并且在调用它时,编译器(以及技术上的链接器)将无法找到它。


头文件中函数的定义应指定范围。 在你的情况下,你应该在你的cpp文件中定义initialiseLog()函数,如下所示:

void Log::initialiseLog(struct ChoppableLog &par1_log, int par2_int, int par3_int)
{

}
链接地址: http://www.djcxy.com/p/95535.html

上一篇: C++ error Undefined reference to Class::Function()

下一篇: c++ Compile error