我是来自C和Java的C ++新手。我对C基础知识有很好的理解,但是我遇到了C ++构造函数的问题。我有一个名为Node
的类,我想要一个带整数的构造函数。我不希望创建一个没有整数的Node
。因此我有:
class Node
{
// Let BST directly access members.
friend class BST;
public:
// Constructor.
Node(int i);
int getValue()
{
return value;
}
protected:
int value;
Node *left;
Node *right;
};
// Constructor
Node::Node(int i)
{
value = i;
}
问题是编译器无法找到默认构造函数,因为我还没有(并且不想)为参数设置默认值。我理解这可行:Node(int i = 0);
但问题是i
可能是任何可能的整数。解决这个问题的最佳方式是什么?
感谢。
修改
我创建节点的唯一方法是这样的:Node new_node(i);
其中i
是一个int。