Я задаю вопрос в книге, в котором меня просят написать конструктор и элементы управления копированием для класса, который имеет следующие переменные. Может ли кто-нибудь дать сценарий / пример, в котором этот класс полезен? Возможно, некоторые коды в основной функции? Часть, которую я запутал, заключается в том, почему ему нужен 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;
}