কম্পিউটার

আমরা কি C এবং C++ এ একটি এক্সপ্রেশনের বাম দিকে ফাংশন ব্যবহার করতে পারি?


C তে আমরা একটি এক্সপ্রেশনের বাম দিকে ফাংশনের নাম ব্যবহার করতে পারি না। C++ এ আমরা এটিকে এভাবে ব্যবহার করতে পারি। এটি এমন কিছু ফাংশন দ্বারা করা যেতে পারে যা কিছু রেফারেন্স ভেরিয়েবল প্রদান করে।

একটি C++ ফাংশন একইভাবে একটি রেফারেন্স ফেরত দিতে পারে যেমন এটি একটি পয়েন্টার প্রদান করে।

যখন একটি ফাংশন একটি রেফারেন্স প্রদান করে, তখন এটি তার রিটার্ন মানের একটি অন্তর্নিহিত পয়েন্টার প্রদান করে। এইভাবে, একটি অ্যাসাইনমেন্ট স্টেটমেন্টের বাম দিকে একটি ফাংশন ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, এই সহজ প্রোগ্রামটি বিবেচনা করুন -

উদাহরণ

#include <iostream>
#include <ctime>
using namespace std;
double vals[] = {10.1, 12.6, 33.1, 24.1, 50.0};
double& setValues( int i ) {
   return vals[i]; // return a reference to the ith element
}
// main function to call above defined function.
int main () {
   cout << "Value before change" << endl;
   for ( int i = 0; i < 5; i++ ) {
      cout << "vals[" << i << "] = ";
      cout << vals[i] << endl;
   }
   setValues(1) = 20.23; // change 2nd element
   setValues(3) = 70.8; // change 4th element
   cout << "Value after change" << endl;
   for ( int i = 0; i < 5; i++ ) {
      cout << "vals[" << i << "] = ";
      cout << vals[i] << endl;
   }
   return 0;
}

আউটপুট

Value before change
vals[0] = 10.1
vals[1] = 12.6
vals[2] = 33.1
vals[3] = 24.1
vals[4] = 50
Value after change
vals[0] = 10.1
vals[1] = 20.23
vals[2] = 33.1
vals[3] = 70.8
vals[4] = 50

একটি রেফারেন্স ফেরত দেওয়ার সময়, সতর্কতা অবলম্বন করুন যাতে উল্লেখ করা বস্তুটি সুযোগের বাইরে না যায়। তাই স্থানীয় var এর রেফারেন্স ফেরত দেওয়া বৈধ নয়। কিন্তু আপনি সবসময় একটি স্ট্যাটিক ভেরিয়েবলের রেফারেন্স ফেরত দিতে পারেন।

int& func() {
   int q;
   //! return q; // Compile time error
   static int x;
   return x; // Safe, x lives outside this scope
}

  1. আপনি Windows 8 বা 8.1 ব্যবহার করা চালিয়ে যেতে পারেন (এবং উচিত)?

  2. Localhost কি এবং কিভাবে আপনি এটি ব্যবহার করতে পারেন?

  3. C++ এ ফ্রেন্ড ক্লাস এবং ফাংশন

  4. কিভাবে একটি Python ফাংশন একটি ফাংশন ফেরত দিতে পারে?