একটি রেফারেন্স ভেরিয়েবল হল একটি উপনাম, অর্থাৎ, ইতিমধ্যে বিদ্যমান ভেরিয়েবলের অন্য নাম৷ একবার একটি রেফারেন্স একটি ভেরিয়েবলের সাথে আরম্ভ করা হলে, হয় পরিবর্তনশীল নাম বা রেফারেন্স নামটি ভেরিয়েবলটিকে উল্লেখ করতে ব্যবহার করা যেতে পারে৷
রেফারেন্স বনাম পয়েন্টার
রেফারেন্সগুলি প্রায়শই পয়েন্টারগুলির সাথে বিভ্রান্ত হয় তবে রেফারেন্স এবং পয়েন্টারের মধ্যে তিনটি প্রধান পার্থক্য হল −
-
আপনার NULL রেফারেন্স থাকতে পারে না। আপনি সর্বদা অনুমান করতে সক্ষম হবেন যে একটি রেফারেন্স একটি বৈধ স্টোরেজের সাথে সংযুক্ত।
-
একবার একটি রেফারেন্স একটি বস্তুর শুরু হলে, এটি অন্য বস্তুর উল্লেখ করার জন্য পরিবর্তন করা যাবে না। পয়েন্টার যে কোনো সময় অন্য বস্তুর দিকে নির্দেশ করা যেতে পারে।
-
একটি রেফারেন্স তৈরি করা হলে আরম্ভ করা আবশ্যক। পয়েন্টার যে কোন সময় আরম্ভ করা যেতে পারে।
C++ এ রেফারেন্স তৈরি
মেমরিতে ভেরিয়েবলের অবস্থানের সাথে সংযুক্ত একটি লেবেল হিসাবে একটি পরিবর্তনশীল নামের কথা ভাবুন। তারপরে আপনি সেই মেমরি অবস্থানের সাথে সংযুক্ত একটি দ্বিতীয় লেবেল হিসাবে একটি রেফারেন্সের কথা ভাবতে পারেন। অতএব, আপনি মূল পরিবর্তনশীল নাম বা রেফারেন্সের মাধ্যমে ভেরিয়েবলের বিষয়বস্তু অ্যাক্সেস করতে পারেন। উদাহরণস্বরূপ, ধরুন আমাদের নিম্নলিখিত উদাহরণ রয়েছে -
int i = 17;
আমরা নিম্নরূপ i এর জন্য রেফারেন্স ভেরিয়েবল ঘোষণা করতে পারি।
int& r = i;
একটি রেফারেন্স হিসাবে এই ঘোষণা পড়ুন &. এইভাবে, প্রথম ঘোষণাটি পড়ুন যেমন "r হল একটি পূর্ণসংখ্যার রেফারেন্স যা i-তে আরম্ভ করা হয়েছে" এবং দ্বিতীয় ঘোষণাটি পড়ুন "s হল একটি ডবল রেফারেন্স যা d থেকে শুরু করা হয়েছে"।
উদাহরণ কোড
#include <iostream> using namespace std; int main () { // declare simple variables int i; double d; // declare reference variables int& r = i; double& s = d; i = 5; cout << "Value of i : " << i << endl; cout << "Value of i reference : " << r << endl; d = 11.7; cout << "Value of d : " << d << endl; cout << "Value of d reference : " << s << endl; return 0; }
আউটপুট
Value of i : 5 Value of i reference : 5 Value of d : 11.7 Value of d reference : 11.7