কম্পিউটার

C++ এ মূল্য পাস বা রেফারেন্স দ্বারা পাসের মধ্যে কোনটি ভাল?


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. হোয়াটসঅ্যাপ বনাম টেলিগ্রাম:কোনটি ভাল?

  4. Xbox One X বনাম Xbox One S:কোনটি ভাল?