簡體   English   中英

C ++錯誤對類:: Function()的未定義引用

[英]C++ error Undefined reference to 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)
{

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM