I'm trying to implement a template class called "Tree", here is the code for the main function:
#include "Stack.h"
#include <iostream>
#include <time.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int gameObjects = 0;
Tree<Player>* PlayerTree = new Tree<Player>;
Player** players;
players = new Player* [5];
Player* p1 = new Player(0);
players[0] = p1;
Player* p2 = new Player(2);
players[1] = p2;
Player* p3 = new Player(4);
players[2] = p3;
Player* p4 = new Player(1);
players[3] = p4;
Player* p5 = new Player(3);
players[4] = p5;
PlayerTree->Insert(players[0]);
PlayerTree->Insert(players[3]);
PlayerTree->Insert(players[2]);
PlayerTree->Insert(players[4]);
PlayerTree->Insert(players[1]);
players[0]->weapons->Insert(new Weapon(8,5));
players[0]->weapons->Find(5)->magazine->Push(new Round(20));
players[0]->weapons->Find(5)->magazine->Push(new Round(21));
players[0]->weapons->Find(5)->magazine->Push(new Round(22));
players[0]->weapons->Find(5)->magazine->Push(new Round(23));
players[0]->weapons->Find(5)->magazine->Push(new Round(24));
players[1]->weapons->Insert(new Weapon(8,6));
players[1]->weapons->Find(6)->magazine->Push(new Round(25));
players[1]->weapons->Find(6)->magazine->Push(new Round(26));
players[1]->weapons->Find(6)->magazine->Push(new Round(27));
players[1]->weapons->Find(6)->magazine->Push(new Round(28));
players[1]->weapons->Find(6)->magazine->Push(new Round(29));
players[1]->weapons->Insert(new Weapon(8,7));
players[1]->weapons->Find(7)->magazine->Push(new Round(30));
players[1]->weapons->Find(7)->magazine->Push(new Round(31));
players[1]->weapons->Find(7)->magazine->Push(new Round(32));
players[1]->weapons->Find(7)->magazine->Push(new Round(33));
players[2]->weapons->Insert(new Weapon(8,8));
players[2]->weapons->Find(8)->magazine->Push(new Round(34));
players[2]->weapons->Find(8)->magazine->Push(new Round(35));
players[2]->weapons->Find(8)->magazine->Push(new Round(36));
players[2]->weapons->Find(8)->magazine->Push(new Round(37));
players[2]->weapons->Find(8)->magazine->Push(new Round(38));
players[2]->weapons->Insert(new Weapon(8,9));
players[2]->weapons->Find(9)->magazine->Push(new Round(39));
players[2]->weapons->Find(9)->magazine->Push(new Round(40));
players[2]->weapons->Find(9)->magazine->Push(new Round(41));
players[2]->weapons->Find(9)->magazine->Push(new Round(42));
players[2]->weapons->Insert(new Weapon(8,10));
players[2]->weapons->Find(10)->magazine->Push(new Round(43));
players[2]->weapons->Find(10)->magazine->Push(new Round(44));
players[2]->weapons->Find(10)->magazine->Push(new Round(45));
players[3]->weapons->Insert(new Weapon(8,11));
players[3]->weapons->Find(11)->magazine->Push(new Round(46));
players[3]->weapons->Find(11)->magazine->Push(new Round(47));
players[3]->weapons->Find(11)->magazine->Push(new Round(48));
players[3]->weapons->Find(11)->magazine->Push(new Round(49));
players[3]->weapons->Find(11)->magazine->Push(new Round(50));
players[3]->weapons->Insert(new Weapon(8,12));
players[3]->weapons->Find(12)->magazine->Push(new Round(51));
players[3]->weapons->Find(12)->magazine->Push(new Round(52));
players[3]->weapons->Find(12)->magazine->Push(new Round(53));
players[3]->weapons->Find(12)->magazine->Push(new Round(54));
players[3]->weapons->Insert(new Weapon(8,13));
players[3]->weapons->Find(13)->magazine->Push(new Round(55));
players[3]->weapons->Find(13)->magazine->Push(new Round(56));
players[3]->weapons->Find(13)->magazine->Push(new Round(57));
players[3]->weapons->Insert(new Weapon(8,14));
players[3]->weapons->Find(14)->magazine->Push(new Round(58));
players[3]->weapons->Find(14)->magazine->Push(new Round(59));
players[4]->weapons->Insert(new Weapon(8,15));
players[4]->weapons->Find(15)->magazine->Push(new Round(60));
players[4]->weapons->Find(15)->magazine->Push(new Round(61));
players[4]->weapons->Find(15)->magazine->Push(new Round(62));
players[4]->weapons->Find(15)->magazine->Push(new Round(63));
players[4]->weapons->Find(15)->magazine->Push(new Round(64));
players[4]->weapons->Insert(new Weapon(8,16));
players[4]->weapons->Find(16)->magazine->Push(new Round(65));
players[4]->weapons->Find(16)->magazine->Push(new Round(66));
players[4]->weapons->Find(16)->magazine->Push(new Round(67));
players[4]->weapons->Find(16)->magazine->Push(new Round(68));
players[4]->weapons->Insert(new Weapon(8,17));
players[4]->weapons->Find(17)->magazine->Push(new Round(69));
players[4]->weapons->Find(17)->magazine->Push(new Round(70));
players[4]->weapons->Find(17)->magazine->Push(new Round(71));
players[4]->weapons->Insert(new Weapon(8,18));
players[4]->weapons->Find(18)->magazine->Push(new Round(72));
players[4]->weapons->Find(18)->magazine->Push(new Round(73));
players[4]->weapons->Insert(new Weapon(8,19));
players[4]->weapons->Find(19)->magazine->Push(new Round(74));
PlayerTree->DisplayInOrder(PlayerTree->root);
PlayerTree->Find(players[0]);
delete PlayerTree;
system("PAUSE");
return 0;
}
And the code for the Tree class:
#pragma once
#include "Player.h"
template<class T>
class Tree
{
private:
public:
Player* root;
Tree<T>(void);
~Tree<T>(void);
template<class T>
void DisplayInOrder(T* localRoot)
{
if (localRoot != 0) {
DisplayInOrder(localRoot->leftChild);
localRoot->Display();
DisplayInOrder(localRoot->rightChild);
}
}
template<class T>
T* Find(const T* key)
{
T * current = root;
while (current != key) {
if (key < current)
current = current->leftChild;
else
current = current->rightChild;
if (current == 0)
{
cout << endl << "Player Not Found!" << endl << endl;
return 0;
}
}
cout << endl << endl << "Found Player! ";
current->Display();
cout << endl << endl;
return current;
}
template<class T>
void Insert(T* insertedPlayer)
{
if(root == 0)
{
root = insertedPlayer;
}
else
{
T * current = root;
T * parent;
while(true)
{
parent = current;
if(*insertedPlayer < *current)
{
current = current->leftChild;
if(current == 0)
{
parent->leftChild = insertedPlayer;
return;
}
}
else
{
current = current->rightChild;
if(current == 0)
{
parent->rightChild = insertedPlayer;
return;
}
}
}
}
}
};
When I try to build it, I get the errors shown in the attachment.
What the hell do they mean???