我在本書中做了一個問題,要求我爲具有以下變量的類編寫構造函數和複製控件成員。有人可以給我一個場景/例子,這個類是有用的嗎?主函數中可能有一些代碼?我感到困惑的部分是爲什麼它需要TreeNode * left和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;
}
這是一個將字符串映射爲整數的二叉搜索樹詞典。 –
@jweyrich我解除了它。它應該複製該值。對?它不應該改變基礎對象。 – ihm