テンプレートなしでコードをコンパイルしようとしましたが、テンプレート コードを追加すると問題なく動作し、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);
}