Ответ
Это был не один момент, а цепь открытий. Сначала — базовое понимание в университете. Настоящий переломный момент наступил, когда я впервые осознанно отладил проблему с висячим указателем (dangling pointer).
Я писал простой менеджер ресурсов:
class Texture {
GLuint id_;
public:
Texture(const char* path) { /* glGenTextures, загрузка... */ }
~Texture() { glDeleteTextures(1, &id_); }
// ...
};
// Где-то в коде:
Texture* loadTexture() {
Texture* tex = new Texture("asset.png");
return tex;
}
// ... и забыл delete -> утечка, а потом и использование после удаления.
Осознав проблему, я переписал это с использованием std::unique_ptr и RAII. Момент, когда я понял, что язык дает мне невероятную мощь и контроль (ручное управление памятью, инлайнинг, шаблоны), но и требует абсолютной дисциплины и понимания, был ключевым. C++ — это не просто написание кода, это проектирование систем с полным пониманием их стоимости. Эта комбинация вызова и контроля меня и увлекла.