Первая очевидная вещь, которую я вижу от ошибок компилятора, похоже, он не признает packet
как тип ,
Следующее, что меня поразило, это то, что эти ошибки генерируются из файла с именем «event.h», а не единицы компиляции. Является ли ваш код в файле заголовка? Этот код не принадлежит одному, но должен находиться в блоке компиляции. Мы не можем видеть контекст вокруг него. Он принадлежит функции, а не определению класса.
Класс «пакет» также должен быть полным типом, а не объявленным вперед.
Вы должны, однако, конечно, с использованием вектора как в std::vector
и управлять указатели в нем shared_ptr
или unique_ptr
, если вы не собираетесь иметь вектор объектов, т.е. vector<packet>
Предположительно, packet
определяется в заголовок. Блок компиляции с кодом в вашем примере должен включать этот заголовок.
Что вы пытаетесь достичь с помощью этого кода? когда у вас более одного «*» в C++, вы делаете что-то неправильно. Вы используете C++ 11? используйте интеллектуальные указатели, а не необработанные указатели. – Heto