我尝试在没有模板的情况下编译我的代码,当我添加模板代码时它工作得很好,我收到了 2019LNK 错误。
我在课堂开始时有以下内容:
template<typename T>
friend void inchealth(T &,int);
函数声明:
template<typename T>
void inchealth(T &x, int y)
{x.health += y;}
(健康是我班级的成员变量)
编辑这里是确切的代码:
class archer
{
template <class T>
friend void inchealth(T &,int);
public:
archer(){health = 150; mana = 50; armor = 50; damage = 10;}
int checkhealth() {return health;}
int checkmana() {return mana;}
int checkarmor() {return armor;}
int checkdamage(){return damage;}
private:
int health;
int mana;
int armor;
int damage;};
template <class T>
void inchealth(T &x, int y)
{x.health += y;}
void main()
{
archer a;
inchealth(a,5);
}