Для создания динамического массива объектов класса без использования `new` и `delete` можно воспользоваться контейнером `std::vector` из стандартной библиотеки C++.
Пример кода создания динамического массива объектов класса с помощью `std::vector`:
```cpp
#include <vector>
class MyClass {
public:
MyClass(int param1, int param2) {
// инициализация объекта
}
};
int main() {
std::vector<MyClass> dynamicArray;
dynamicArray.emplace_back(10, 20); // добавление объекта в массив
// доступ к элементам массива
MyClass& obj = dynamicArray[0];
// освобождение памяти не требуется, так как std::vector сам управляет памятью объектов
return 0;
}
```
Использование `std::vector` позволяет управлять динамическим массивом объектов класса без необходимости явного выделения и освобождения памяти. В этом случае можно не пренебрегать советами по неиспользованию `new` и `delete`.
Если все-таки требуется реализовать собственный контейнер, память для объектов класса можно выделить статически при создании массива и динамически расширять его при необходимости, например, увеличивая его размер в два раза при достижении текущего лимита.
Освобождение памяти после использования происходит автоматически при выходе из области видимости объекта-контейнера.