এই সেকশনে আমরা স্ট্রিং এবং স্ট্রিং লিটারেলের আরেকটি প্রোপার্টি দেখব। যদি আমরা সি++-এ দুটি স্ট্রিং ক্যাটেনেট (concatenate) করতে চাই, তবে কিছু কথা মনে রাখতে হবে।
যদি x + y স্ট্রিং ক্যাটেনেশন এক্সপ্রেশন হয়, যেখানে x এবং y উভয়ই স্ট্রিং। তবে এই এক্সপ্রেশনের রেজাল্ট হবে x স্ট্রিংয়ের ক্যারেক্টার কপি এবং তারপর y স্ট্রিংয়ের ক্যারেক্টার।
x বা y যেকোনো একটি স্ট্রিং লিটারেল বা ক্যারেক্টার হতে পারে, কিন্তু দুটোই একসাথে স্ট্রিং লিটারেল হতে পারবে না। যদি দুটোই স্ট্রিং লিটারেল হয়, তবে সেগুলো ক্যাটেনেট হবে না।
উদাহরণ কোড (কাজ করবে না)
#include<iostream> using namespace std; main(){ cout << "Hello " + "World"; }
আউটপুট
উপরের কোড কম্পাইল হবে না কারণ দুটি অপারেন্ডই লিটারেল।
এখানে অপারেটর '+'-র লेफট অ্যাসোসিয়েটিভিটি (left associativity) এরর রিটার্ন করছে। যদি उनमें से একটি স্ট্রিং হয়, তবে এটি সঠিকভাবে কাজ করবে।
উদাহরণ কোড (কাজ করবে)
#include<iostream> using namespace std; main(){ string my_str = "Hello "; cout << my_str + "World"; }
আউটপুট
Hello World