ক্লাস X-এর অবজেক্ট ফাংশন fun-এ পাস করার চারটি পদ্ধতি:
১. পাস বাই ভ্যালু (Pass by Value)
শ্যালো লোকাল কপি তৈরি হয়। মডিফিকেশন কলারকে প্রভাবিত করে না।
void fun(X x); // ডিক্লেরেশন X x; fun(x); // কল
২. পাস বাই রেফারেন্স (Pass by Reference)
অবজেক্টের রেফারেন্স পাস হয়। মডিফিকেশন কলারকে প্রভাবিত করে। কপি হয় না।
void fun(X &x); X x; fun(x);
৩. পাস বাই কনস্ট রেফারেন্স (Pass by Const Reference)
কনস্ট রেফারেন্স পাস হয়। ডাইরেক্ট মডিফিকেশন সম्भব নয় (মেথড কল করা যায়)। রিড-ওনلی অ্যাক্সেসের জন্য আদর্শ। কপি হয় না।
void fun(X const &x); X x; fun(x);
৪. পাস বাই পয়েন্টার (Pass by Pointer)
void fun(X *x); // মডিফাই করা যায় void fun(X const *x); // কনস্ট পয়েন্টার, মডিফাই করা যায় না X x; fun(&x);
সুপারিশ: বড় অবজেক্টের জন্য const T& (রিড-ওনلی) বা T& (মডিফাই করতে হলে)। ছোট ট্রিভিয়ালি কপিয়েবল টাইপের জন্য পাস বাই ভ্যালু ওকে।