有关类里面内联函数的问题,请教一下
//Hunter.h申明如下
#pragma once
#include "iostream"
using namespace std;
class CHunter
{
public:
CHunter(void);
~CHunter(void);
void ShowRabbit();
void SetRabbit(int x);
private:
int m_nRabbit;
};
//Hnter.cpp定义如下:
#include "Hunter.h"
CHunter::CHunter(void)
{
}
CHunter::~CHunter(void)
{
}
inline void CHunter::SetRabbit(int x)
{
m_nRabbit = x;
}
inline void CHunter::ShowRabbit()
{
cout << "The Hunter has " << m_nRabbit << " rabbits." << endl;
}
//main函数
#include "Hunter.h"
void main()
{
CHunter Hunter;
Hunter.SetRabbit(10);
Hunter.ShowRabbit();
}
/*为什么我将void ShowRabbit()和void SetRabbit(int x)两个函数定义为inline函数后,执行时编译器报错哦:
1>main.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall CHunter::ShowRabbit(void)" (?ShowRabbit@CHunter@@QAEXXZ),该符号在函数 _main 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall CHunter::SetRabbit(int)" (?SetRabbit@CHunter@@QAEXH@Z),该符号在函数 _main 中被引用
我main函数里面已经包含了Hunter.h头文件了
如果去掉关键字inline时,程序可以正常执行*/