Я думаю, что вы путаете C ++ с синтаксисом C #.
Во-первых, в отличие от многих языков, переменные, расположенные в стеке (например, у вас), инициализируются вызовом конструктора по умолчанию, поэтому я подозреваю, чтовы делаете это не нужно.
Во-вторых, чтобы сделать то, что вы пытаетесь сделать, вы используете следующий синтаксис:
instructions = vector<Instruction>();
однако, как я уже сказал, это, вероятно, избыточно(и расточительствует неоптимизирующий компилятор, поскольку он может вызывать как конструктор, так и оператор присваивания).Гораздо лучший способ сделать это можно найти в ответе sbi.
В-третьих, в отличие от C #, оператор new
выделяет память в куче и возвращает указатель на вновь распределенные данные.Ваша переменная instructions
не является указателем, поэтому ошибка.