C++;错误:未定义对类::函数()的引用 我对C++很陌生,我已经在这个问题上坚持了几个小时。我正试图建立一个视频游戏相关的经验计算器的基础,但我不能通过这个问题

C++;错误:未定义对类::函数()的引用 我对C++很陌生,我已经在这个问题上坚持了几个小时。我正试图建立一个视频游戏相关的经验计算器的基础,但我不能通过这个问题,c++,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.cpp #include "Log.h" #include <iostr

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.cpp

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

using namespace std;

Log::Log()
{

}

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

}
#包括“Log.h”
#包括
使用名称空间std;
Log::Log()
{
}
void initialiseLog(struct chopablelog&par1_log,int par2_int,int par3_int)
{
}
我得到的错误是

C:\Users\Murmanox\Documents\C++\C++Projects\CodeBlocks\Class Files Test\main.cpp | 11 |对`Log::initialiseLog(chopablelog&,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)
{

}

在你的
.cpp
文件中应该是
void Log::initialiseLog(…
)。你需要用一个明确的“Log::xyz”来限定“Log.cpp”中的所有成员函数等。你像瞪羚一样漂亮!我最接近这个的是Log::initialiseLog(params){},这只会让我更加困惑。
void Log::initialiseLog(struct ChoppableLog &par1_log, int par2_int, int par3_int)
{

}