Есть пара проблем с вашим кодом, но чтобы разобраться, в чем конкретно ваши проблемы.Он присваивает локальные переменные себе, а не членам данных.Измените
Bracket(char type, int position)
{
type =type;
position=position;
}
на
Bracket(char type, int position)
{
this->type =type;
this->position=position;
}
или используйте списки инициализаторов и различные имена
Bracket(char in_type, int in_position)
: type(in_type)
, position(in_position)
{
}
У вас также есть утечка памяти здесь
Bracket *l1 = new Bracket(next, position + 1);
opening_brackets_stack.push(*l1);
это лучше написать с автоматической продолжительностью хранения как
Bracket l1{next, position + 1};
opening_brackets_stack.push(l1);