Здравствуйте, пишу приложение на С++(Qt), которое работает с БД и в процессе всей моей работы у меня возник вопрос в каких ситуациях, когда и где выделять память под переменную? К примеру у меня есть форма, которая использует один общий запрос, я определяю переменную под этот запрос и вопрос в том где ее лучше выделить в стэке или в куче?
namespace Ui {
class ClassesForm;
}
class ClassesForm : public QMainWindow
{
Q_OBJECT
public:
...
private:
...
QString selectedClass; // или QString *selectedClass и в конструкторе
//выделить память под нее?
};
И к примеру есть функция в которой используется другой запрос, который не используется нигде кроме этой формы, в этом случае, где ее выделять?
void ClassesForm::changeDescriptionOfClass()
{
QString query; //Или выделять память?
...
}
Хотелось бы получить внятный ответ, не только об этих примерах, но и в целом внятный вопрос когда, что и где лучше использовать...
Нет смысла динамически выделять память, только если для вас это не критичный параметр. Вот здесь хорошо всё расписано про динамическое выделение памяти - https://habrahabr.ru/company/aligntechnology/blog/283352/
Основная мысль: старайтесь убрать вызовы new и delete из клиентского кода. Они нужны только в исключительных случаях, и эти случаи требуют исключительного внимания. Например, это создание собственного контейнера или менеджера памяти.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем приветУ меня задание разработать движение электрона во круг атома, это должно быть как анимация
Как в QML нарисовать полукруг и применить по нему маску прозрачности? имеется изображение, от которого нужно рисовать только его часть - (полукруг...
В c++ builder есть простая форма, где пользователь может выбрать 7z архивНеобходимо по нажатию кнопки изменить определённый файле в выбранном...