Avatar ·

Por que programadores C++ devem minimizar o uso de `new`?

Olá, colegas! Sou um desenvolvedor C++ iniciante e estou tentando entender as melhores práticas. Em todo lugar leio que devo evitar `new`, mas não entendo completamente o motivo. Nos tutoriais, frequentemente escrevem: "aloque memória no heap usando `new`", e depois desenvolvedores experientes dizem: "não faça isso". Isso me confunde.\n\nAqui está um exemplo simples: preciso criar um objeto que viverá mais que a função atual. Eu escrevo:\n\n```cpp\nclass MyClass {\npublic:\n MyClass() { std::cout << "Criado"; }\n ~MyClass() { std::cout << "Destruído"; }\n void doWork() { /* ... */ }\n};\n\nvoid process() {\n MyClass* obj = new MyClass();\n obj->doWork();\n // Esqueci o delete! Vazamento de memória.\n}\n```\n\nProblema: frequentemente esqueço de chamar `delete`, e isso causa vazamentos. Também ouvi que `new` pode lançar exce