Эта функция поиска ничего не возвращает по этим путям
else
this->left->Search(data);
и
else
this->right->Search(data);
Вам нужно написать
else
return this->left->Search(data);
и
else
return this->right->Search(data);
Функция может быть определена с помощью одного оператора возврата следующим образом
bool Search( int data ) const
{
return ( this->data == data ) ||
( this->data >= data ? this->left && this->left->Search( data )
: this->right && this->right->Search( data ) );
}
На самом деле условие
this->data >= data
может быть заменено на
this->data > data