Задать вопрос
  • Как сохранить жизнь переменной стека?

    AtomKrieg
    @AtomKrieg
    Давай я поищу в Google за тебя
    Только дальнейшими вызовами можно продлить жизнь переменной на стэке. Это суть стэка. Как только вы выходите из функции, память освобождается под переменные других функции и все указатели на переменные внутри становятся невалидными.
    template<typename T>
    callbackFunction(T &t) {...}
    
    void someFunction(int index) 
    {
        switch(index) 
        {
            case 0: callbackFunction ( someObject->someMethodOne() );
                break;
       ...


    Вообще у вас тут паттерн проектирования под названием фабричный метод. Не надо придумывать велосипед, а надо смотреть в книжки.
    Ответ написан
  • Почему константное значение Qstring?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Есть такое правило: "const по умолчанию", т.е. const нужно использовать везде, где это возможно. В данном случае QString передается по ссылке и планируется только для чтения, потому его делают константным.

    Кроме того, для копируемых объектов const не нужно, достаточно передавать их по значению (аргумент скопируется и нам будет доступна лишь его копия). Но QString может быть достаточно крупным, а вызовы метода - достаточно частыми, потому передается просто ссылка. Появляется возможность изменить объект через эту ссылку. Чтобы это снова запретить, в методе указывают const для аргумента-ссылки.
    Ответ написан
    Комментировать