কম্পিউটার

C++-এ মান দ্বারা পাস এবং রেফারেন্স দ্বারা পাসের মধ্যে পার্থক্য


C++ এ আমরা বিভিন্ন উপায়ে একটি ফাংশনে আর্গুমেন্ট পাঠাতে পারি। এই বিভিন্ন উপায় হল −

  • মূল্য অনুসারে কল করুন
  • রেফারেন্স দ্বারা কল করুন
  • ঠিকানা অনুসারে কল করুন

কখনও কখনও ঠিকানা দ্বারা কলকে রেফারেন্স দ্বারা কল হিসাবে উল্লেখ করা হয়, তবে সেগুলি C++ এ আলাদা। ঠিকানা দ্বারা কলে, আমরা সঠিক মেমরি ঠিকানা পাঠাতে পয়েন্টার ভেরিয়েবল ব্যবহার করি, কিন্তু রেফারেন্সের মাধ্যমে কলে আমরা রেফারেন্স ভেরিয়েবলকে পাস করি (সেই ভেরিয়েবলের উপনাম)। এই বৈশিষ্ট্যটি সি-তে নেই, সেখানে সেই প্রভাব পেতে আমাদের পয়েন্টারটি পাস করতে হবে। এই বিভাগে আমরা দেখব যে মূল্য দ্বারা কলের উপর রেফারেন্স দ্বারা কল করার সুবিধাগুলি কী এবং সেগুলি কোথায় ব্যবহার করতে হবে

মূল্য অনুসারে কল করুন

মানের দ্বারা কলে, প্রকৃত মান যা আর্গুমেন্ট হিসাবে পাস করা হয় তার উপর কিছু অপারেশন করার পরে পরিবর্তন করা হয় না। যখন মান দ্বারা কল ব্যবহার করা হয়, তখন এটি মেমরির স্ট্যাক বিভাগে সেই ভেরিয়েবলের একটি অনুলিপি তৈরি করে। যখন মান পরিবর্তন করা হয়, এটি সেই অনুলিপিটির মান পরিবর্তন করে, প্রকৃত মান একই থাকে।

উদাহরণ কোড

#include<iostream>
using namespace std;

void my_function(int x) {
   x = 50;
   cout << "Value of x from my_function: " << x << endl;
}

main() {
   int x = 10;
   my_function(x);
   cout << "Value of x from main function: " << x;
}

আউটপুট

Value of x from my_function: 50
Value of x from main function: 10

রেফারেন্স দ্বারা কল করুন

রেফারেন্স দ্বারা কলে প্রকৃত মান যা যুক্তি হিসাবে পাস করা হয় তা কিছু অপারেশন করার পরে পরিবর্তিত হয়। যখন রেফারেন্স দ্বারা কল ব্যবহার করা হয়, তখন এটি মেমরির স্ট্যাক বিভাগে সেই ভেরিয়েবলের রেফারেন্সের একটি অনুলিপি তৈরি করে। মান পেতে একটি রেফারেন্স ব্যবহার করে। সুতরাং যখন রেফারেন্স ব্যবহার করে মান পরিবর্তন করা হয় তখন এটি প্রকৃত পরিবর্তনশীলের মান পরিবর্তন করে।

উদাহরণ কোড

#include<iostream>
using namespace std;

void my_function(int &x) {
   x = 50;
   cout << "Value of x from my_function: " << x << endl;
}

main() {
   int x = 10;
   my_function(x);
   cout << "Value of x from main function: " << x;
}

আউটপুট

Value of x from my_function: 50
Value of x from main function: 50

রেফারেন্স দ্বারা কল কোথায় ব্যবহার করবেন?

  • রেফারেন্স দ্বারা কলটি প্রধানত ব্যবহৃত হয় যখন আমরা পাস করা আর্গুমেন্টের মান ইনভোকার ফাংশনে পরিবর্তন করতে চাই।

  • একটি ফাংশন শুধুমাত্র একটি মান ফেরত দিতে পারে। যখন আমাদের একটি ফাংশন থেকে একাধিক মানের প্রয়োজন হয়, আমরা সেগুলিকে এই পদ্ধতিতে একটি আউটপুট আর্গুমেন্ট হিসাবে পাস করতে পারি৷


  1. C++ এ ধ্রুবক এবং পরিবর্তনশীলের মধ্যে পার্থক্য কী?

  2. পিএইচপি-তে পাস বাই রেফারেন্স এবং পাস বাই ভ্যালু কী?

  3. C++ এবং C# এর মধ্যে পার্থক্য

  4. C# তে পাস বাই মান এবং রেফারেন্স প্যারামিটারের মধ্যে পার্থক্য কী?