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