কম্পিউটার টিউটোরিয়াল

সি++-এ ফাংশন ওভারলোডিং (Function Overloading) এবং রিটার্ন টাইপ

আপনি একই স্কোপে একই ফাংশন নামের একাধিক ডেফিনিশন रखতে পারেন। ফাংশনের ডেফিনিশন অবশ্যই আর্গুমেন্ট লিস্টে টাইপ এবং/অথবা আর্গুমেন্টের সংখ্যা থেকে একে অপরের থেকে ভিন্ন হতে হবে। আপনি শুধু রিটার্ন টাইপ ভিন্ন করে ফাংশন ডিক্লেরেশন ওভারলোড করতে পারবেন না।

ফাংশন ওভারলোডিং মূলত কম্পাইল টাইম পলিমরফিজম (compile time polymorphism)। এটি ফাংশন সিগনেচার চেক করে। যদি সিগনেচারগুলো একই না হয়, তবে সেগুলো ওভারলোড করা যায়। একটি ফাংশনের রিটার্ন টাইপ ফাংশন ওভারলোডিং-এ কোনো ইফেক্ট তৈরি করে না। একই ফাংশন সিগনেচার কিন্তু ভিন্ন রিটার্ন টাইপ ওভারলোড করা যাবে না।

নিচে একটি উদাহরণ দেওয়া হলো যেখানে একই print() ফাংশনটি বিভিন্ন ডেটা টাইপ প্রিন্ট করতে ব্যবহার করা হয়েছে:

উদাহরণ কোড

#include <iostream> using namespace std; class printData {    public:       void print(int i) {          cout << "Printing int: " << i << endl;       }       void print(double f) {          cout << "Printing float: " << f << endl;       }       void print(char* c) {          cout << "Printing character: " << c << endl;       } }; int main(void) {    printData pd;    pd.print(5); // Call print to print integer    pd.print(500.263); // Call print to print float    pd.print("Hello C++"); // Call print to print character    return 0; }

আউটপুট

Printing int: 5 Printing float: 500.263 Printing character: Hello C++
  1. C++-এ ফাংশন ওভারলোডিং ও const কীওয়ার্ড

  2. সি++-এ ক্যাচ ব্লক এবং টাইপ কনভার্সন

  3. C++-এ ডিফল্ট আর্গুমেন্ট এবং ভার্চুয়াল ফাংশন

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