Как не указывать имя класса несколько раз в HTML?

TestClass *test = new TestClass();

Вы используете new, который создает динамически выделенный объект (скорее всего, помещенный в кучу). Этот тип ресурсов должен быть вручную управляемым вами. Управляя, вы должны использовать delete на нем после того, как вы это сделаете.

{
     TestClass *test = new TestClass();
     // do something
     delete test;
}

Но для большинства ваших целей и намерений вам просто нужно использовать объекты автоматического хранения, которые освобождают вам необходимо вручную управлять объектом. Это также, скорее всего, будет иметь лучшую производительность, особенно в короткоживущих объектах. Вы всегда должны использовать их, если у вас нет повода для этого.

{
     TestClass test;
     // do something
}

Однако, если вам нужна семантика динамически выделенных объектов или указателей, это всегда будет лучше использовать какой-либо механизм для инкапсуляции удаления / освобождения объекта / ресурса для вас, что также обеспечивает дополнительную безопасность, особенно когда вы используете исключения и условные ветви. В вашем случае было бы лучше использовать std::unique_ptr .

{
     std::unique_ptr test(new TestClass());
     // auto test = std::make_unique();  in C++14

     // do something (maybe you want to pass ownership of the pointer)
}

Ниже приведена соответствующая ссылка, которая поможет вам решить, использовать ли автоматические объекты хранения или динамически выделенные объекты: Почему программисты на С ++ сводят к минимуму использование «нового»?

-13
задан arun 11 July 2019 в 16:58
поделиться