Работа с памятью в С++(Qt)

229
30 ноября 2017, 02:41

Здравствуйте, пишу приложение на С++(Qt), которое работает с БД и в процессе всей моей работы у меня возник вопрос в каких ситуациях, когда и где выделять память под переменную? К примеру у меня есть форма, которая использует один общий запрос, я определяю переменную под этот запрос и вопрос в том где ее лучше выделить в стэке или в куче?

namespace Ui {
class ClassesForm;
}
class ClassesForm : public QMainWindow
{
    Q_OBJECT
    public:
    ...
    private:
    ...
    QString selectedClass; // или QString *selectedClass и в конструкторе 
    //выделить память под нее?
};

И к примеру есть функция в которой используется другой запрос, который не используется нигде кроме этой формы, в этом случае, где ее выделять?

void ClassesForm::changeDescriptionOfClass()
{
    QString query; //Или выделять память?
    ...
}

Хотелось бы получить внятный ответ, не только об этих примерах, но и в целом внятный вопрос когда, что и где лучше использовать...

Answer 1

Нет смысла динамически выделять память, только если для вас это не критичный параметр. Вот здесь хорошо всё расписано про динамическое выделение памяти - https://habrahabr.ru/company/aligntechnology/blog/283352/

Основная мысль: старайтесь убрать вызовы new и delete из клиентского кода. Они нужны только в исключительных случаях, и эти случаи требуют исключительного внимания. Например, это создание собственного контейнера или менеджера памяти.

READ ALSO
C++ SFML анимация

C++ SFML анимация

Всем приветУ меня задание разработать движение электрона во круг атома, это должно быть как анимация

372
Нарисовать полукруг (pie) в QML и наложить OpocityMask

Нарисовать полукруг (pie) в QML и наложить OpocityMask

Как в QML нарисовать полукруг и применить по нему маску прозрачности? имеется изображение, от которого нужно рисовать только его часть - (полукруг...

314
Ошибка кодировки в выходном файле

Ошибка кодировки в выходном файле

Есть код алгоритма сжатия lz77:

361
Работа с архивом 7z в c++ builder

Работа с архивом 7z в c++ builder

В c++ builder есть простая форма, где пользователь может выбрать 7z архивНеобходимо по нажатию кнопки изменить определённый файле в выбранном...

239