Здравствуйте, пишу приложение на С++(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 из клиентского кода. Они нужны только в исключительных случаях, и эти случаи требуют исключительного внимания. Например, это создание собственного контейнера или менеджера памяти.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости