如何在模板BST类中使用另一个类的公共方法?

时间:2019-08-05 20:56:21

标签: c++ reference binary-search-tree pass-by-reference

我的意图是按照评论的内容做。如何使用Packet.h类中的public getter成员函数在BST模板类中实现此目标?

BST.cpp

template <typename T>
void BST<T>::insert(T &p) {
    if (root != nullptr) {

    }
    else {
        Node<T> *newNode = new Node<T> (p);
        root = newNode;
        // What I want to do: cout << root->data.getDescription() << endl;
    }
}

其中T&p是联合的Packet对象。

BST.h

template <typename T>
class Node {
    template <typename> friend class BST;
    public:
        Node(T p) : data(p), rlink(nullptr), llink(nullptr) {}
        ~Node() {}
    private:
        T data;
        Node *rlink, *llink;

};

Packet.h类

class Packet {
public:
    Packet(int partId, string description, double price, int partCount) :
        partId(partId), description(description), price(price), partCount(partCount) {}
    int getPartId() const { return partId; }
    string getDescription() const { return description; }
    double getPrice() const { return price; }
    int getPartCount() const { return partCount; }
private:
    int partId;
    string description;
    double price;
    int partCount;
};

请帮助,我忘了如何处理这些事情。

0 个答案:

没有答案