0

次のコードをご覧ください

Tree.h

//Tree Data Structure.

    #pragma once
    #include <iostream>
    #include "Player.h"
    template <typename T>

    class Tree
    {
    public:
        T* root;

    Tree(void)
    {
        root = 0;
    }


    Tree::~Tree(void)
    {
    }

    //Find elements in tree (Find() function removed)


    //Display values in tree (Display() Function removed)

    //Insert data into tree
    void Insert(T * data)
    {
        T *newNode = data;

        if(this->root == 0)
        {
            root = newNode;
        }
        else
        {
            T *current = root;
            T *parent;

            while(true)
            {
                parent = current;

                if(data->id < current->id)
                {
                    current = current->leftChild;

                    if(current==0)
                    {
                        parent->leftChild = newNode;
                        return;
                    }
                }
                else
                {
                    current = current->rightChild;

                    if(current==0)
                    {
                        parent->rightChild = newNode;
                        return;
                    }
                }
            }
        }
    }
    };

Player.h

#pragma once
#include "GameObject.h"
#include "Tree.h"

class Player:public GameObject
{
public:
    Player(void);
    ~Player(void);

    Player *rightChild;
    Player *leftChild;

    void Display();
    bool operator !=(const Player&);
    bool operator <(const Player&);

};

Player.cpp

#include "Player.h"
#include <iostream>

Player::Player(void)
{
    leftChild = 0;
    rightChild = 0;
}


Player::~Player(void)
{
}



bool Player::operator!=(const Player& player)
{
    if(instances==NULL)
    {
        return false;
    }
    else
    {
        return true;
    }
}

bool Player::operator<(const Player& player)
{

    if(this->instances < player.instances)
    {
        return true;
    }
    else
    {
        return false;
    }
}

ここでは、Treeはテンプレートです。Playerクラスは、ツリーに挿入されるクラスです。

Tree.hinsideInsert()メソッドでは、代わりにif(data->id < current->id)Playerの<オーバーロードされた演算子を呼び出す必要があります。これどうやってするの?助けてください!

4

1 に答える 1

1

次のように、ポインタを逆参照できます。

if (*data < *current) { ... }
于 2013-03-02T15:28:41.233 に答える