Когда вы создаете root1
, создается p
, и вы не можете вызвать конструктор для существующего объекта, поэтому компилятор считает, что вы выполняете вызов функции. Вместо этого вы можете сделать:
root1->p = person{"bob", 25};
Кроме того, эта строка:
node* root1 = new node();
не будет компилироваться, поскольку для person
.
* 1011 нет конструктора по умолчанию. * Вы можете назвать это так:
node* root1 = new node{{"bob", 25}};
или восстановить конструктор по умолчанию для person
с помощью:
person() = default;