একটি রেফারেন্স ভেরিয়েবল একটি আলিয়াস, অর্থাৎ ইতিমধ্যে বিদ্যমান একটি ভেরিয়েবলের অন্য একটি নাম। একবার রেফারেন্স ইনিশিয়ালাইজ হলে, মূল ভেরিয়েবলের নাম বা রেফারেন্সের নাম যেকোনো একটি ব্যবহার করে ভেরিয়েবলটি অ্যাক্সেস করা যায়।
রেফারেন্স বনাম পয়েন্টার
রেফারেন্স এবং পয়েন্টারের মধ্যে তিনটি প্রধান পার্থক্য:
রেফারেন্স কখনো নাল হতে পারে না। এটি সর্বদা একটি বৈধ মেমরি লোকেশনের সাথে যুক্ত থাকে।
একবার রেফারেন্স ইনিশিয়ালাইজ হলে, এটি অন্য কোনো অবজেক্টের সাথে যুক্ত করা যায় না। পয়েন্টার যেকোনো সময় অন্য অবজেক্টে পয়েন্ট করতে পারে।
রেফারেন্স তৈরি করার সাথে সাথেই ইনিশিয়ালাইজ করতে হয়। পয়েন্টার পরে ইনিশিয়ালাইজ করা যায়।
C++-এ রেফারেন্স তৈরি
ভেরিয়েবল নাম মেমরির লোকেশনের একটি লেবেল। রেফারেন্স সেই লোকেশনের দ্বিতীয় লেবেল। তাই মূল নাম বা রেফারেন্স যেকোনো একটি দিয়ে ভেরিয়েবল অ্যাক্সেস করা যায়। উদাহরণ:
int i = 17;
i-এর জন্য রেফারেন্স ভেরিয়েবল ঘোষণা:
int& r = i;
এখানে & রেফারেন্স বোঝায়। অর্থাৎ "r হলো i-র সাথে ইনিশিয়ালাইজড একটি ইন্টিজার রেফারেন্স"।
উদাহরণ কোড
#include <iostream>
using namespace std;
int main() {
int i;
double d;
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