Какой правильный способ инстанцирования объектов в C++?

В C++ (я использую QT) я могу создать экземпляр класса QString двумя способами:

метод 1

QString str = "my string";

метод 2

QString *str = new QString("my string");

Я знаю, что это связано с указателями. Итак, мои вопросы:

  1. в чем разница между этими двумя способами?
  2. какого метода мне следует придерживаться?
  3. когда правильно использовать метод 1 и когда правильно использовать метод 2?
  4. в методе 2 я могу уничтожить объект, вызвав delete str;. Как я могу удалить переменную str при использовании метода 1?

Спасибо

6
задан AusCBloke 9 December 2011 в 02:01
поделиться