Конструкторы для классов и структур должны быть объявлены в определении класса / структуры. Ваша версия этого не делает, так как node(int)
объявлен вне класса node
.
Измените код на следующий:
class BST
{
private:
struct node
{
int key;
node* left;
node* right;
node(int x);
};
node* root;
public:
BST();
};
Тогда, если вы решите внедрить node
конструктор вне класса BST
:
BST::node::node(int x)
{
// code here
}