Объединение двух строковых литералов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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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