次のコードを見てください
武器.h
**
#pragma once
#include "GameObject.h"
#include "Stack.h"
#include "Round.h"
class Weapon :
public GameObject
{
public:
Weapon(int);
~Weapon(void);
Stack <Round> *stack1(int rounds) ;
Weapon *next;
void display();
};
**
武器.cpp
#include "Weapon.h"
#include <iostream>
using namespace std;
Weapon::Weapon(int size)
{
stack1(size);
}
Weapon::~Weapon(void)
{
}
void Weapon::display()
{
cout << "Weapon Id: " << id << endl;
}
上記はプロジェクト コードの 2 つのファイルにすぎないことに注意してください。ただし、実行すると次のエラーが発生します
1>------ Build started: Project: stacksCheck, Configuration: Debug Win32 ------
1> Weapon.cpp
1>Weapon.obj : error LNK2001: unresolved external symbol "public: class Stack<class Round> * __thiscall Weapon::stack1(int)" (?stack1@Weapon@@QAEPAV?$Stack@VRound@@@@H@Z)
1>C:\Users\yohan\Documents\Visual Studio 2010\Projects\CourseWork2\Debug\CourseWork2.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
このエラーはここから来ていると100%確信しています
stack1(size);
これを削除すると、コードは正常に動作します!!
stack1
Stack クラスのコンストラクターが整数パラメーターを受け入れる Stack クラスのオブジェクトです。Stack
クラスは、ヘッダー ファイルにあるテンプレートです。
このエラーを取り除くにはどうすればよいですか?
助けてください!