Объедините два строковых литерала

Я читаю "Ускоренный C ++" Кенига. Он пишет, что «новая идея состоит в том, что мы можем использовать + для объединения строки и строкового литерала - или, если на то пошло, двух строк (но не двух строковых литералов).

Хорошо, я полагаю, это имеет смысл. Теперь на два отдельных упражнения, призванных прояснить это.

Верны ли следующие определения?

const string hello = "Hello";

const string message = hello + ",world" + "!";

Теперь я попытался выполнить вышеупомянутое, и это сработало! Так что я был счастлив.

Затем я попытался выполнить следующее упражнение;

const string exclam = "!";

const string message = "Hello" + ",world" + exclam;

Это не сработало. Теперь я понимаю, что это как-то связано с тем фактом, что вы не можете объединить два строковых литерала, но я не понимаю семантической разницы между тем, почему мне удалось заставить работать первый пример (разве '' t ", world" и "!", два строковых литерала? Разве это не сработало?), но не второй.

117
задан A-Sharabiani 12 September 2018 в 15:25
поделиться