Ссылка на ту же переменную, которую вы объявляете

Я пару раз видел следующую ошибку типа при работе с кодом C ++:

QString str = str.toUpper();

Это может быть довольно просто ошибка, которую нужно сделать, и тем не менее она компилируется и выполняется (иногда со сбоями, иногда без). Я не вижу никаких обстоятельств, при которых вы действительно хотели бы сделать это.

Некоторое тестирование показало, что копия вызывается конструктор, а не конструктор по умолчанию, и что объект передается сам себе из конструктора копирования.

Может ли кто-нибудь объяснить, почему это не ошибка компилятора или даже не предупреждение?

11
задан Chris 10 October 2011 в 20:31
поделиться