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

Программы на C++. Форум разработчиков
Anonymous
Объединение двух строковых литералов

Сообщение Anonymous »

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

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

Действительны ли следующие определения?

Код: Выделить всё

const string hello = "Hello";

const string message = hello + ",world" + "!";
Теперь я попробовал выполнить вышеописанное, и это сработало! Так что я был счастлив.

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

Код: Выделить всё

const string exclam = "!";

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

Подробнее здесь: https://stackoverflow.com/questions/606 ... g-literals

Вернуться в «C++»