что на самом деле делает этот класс?

Я задаю вопрос в книге, в котором меня просят написать конструктор и элементы управления копированием для класса, который имеет следующие переменные. Может ли кто-нибудь дать сценарий / пример, в котором этот класс полезен? Возможно, некоторые коды в основной функции? Часть, которую я запутал, заключается в том, почему ему нужен TreeNode * слева и TreeNode * справа. Я не могу думать об использовании из них.

#include <iostream>
#include <string>
using namespace std;
class TreeNode
{
public:
    //constructor
    TreeNode(const string& s, const int& n, const TreeNode& lm, const TreeNode& rm):
        value(s), count(n), left(new TreeNode(lm)), right(new TreeNode(rm)) {}
    //copy-constructor
    TreeNode(const TreeNode& m): value(m.value), count(m.count), left(new TreeNode(*m.left)), right(new TreeNode(*m.right)) {}
    //assignment operator
    TreeNode& operator=(const TreeNode& m)
    {
        value = m.value;
        count = m.count;
        *left = *m.left;
        *right = *m.right;
        return *this;   
    }
    //destructor
    ~TreeNode()
        {
      delete left;
      delete right;
    }
private:
    string value;
    int count;
    TreeNode *left;
    TreeNode *right;
};
int main ()
{
    return 0;
}
0
задан ihm 23 November 2011 в 15:59
поделиться