[英]undefined reference to `Class::function()' error in c++ [CLion ide]
[英]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.