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

সি++ ক্লাসে ফাংশন ডিক্লেরেশনের শেষে 'const' এর অর্থ


কখনও কখনও ফাংশন ডিক্লেরেশনের শেষে const কীওয়ার্ডটি পাওয়া যায়। তাহলে এটা কী বোঝায়?

এটি ব্যবহার করে একটি ফাংশনকে কনস্ট্যান্ট बनানো যায়। কনস্ট্যান্ট ফাংশনের ধারণা হলো, যে অবজেক্ট থেকে সেগুলো কল করা হয় সেগুলো দ্বারা ফাংশনটি মডিফাই করা যাবে না। প্রোগ্রামে কনস্ট্যান্ট ফাংশন ব্যবহার করার পরামর্শ দেওয়া হয়।

একটি কনস্ট্যান্ট ফাংশনের উদাহরণ দেখি।

উদাহরণ ১

#include <iostream>
using namespace std;

class MyClass {
    int value;
public:
    MyClass(int val = 0) {
        value = val;
    }
    int getVal() const {
        // value = 10; [এই লাইন কম্পাইল টাইম এরর দেবে কারণ ফাংশনটি কনস্ট্যান্ট]
        return value;
    }
};

আউটপুট

The value is: 80

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

উদাহরণ ২

#include <iostream>
using namespace std;

class MyClass {
    int value;
public:
    MyClass(int val = 0) {
        value = val;
    }
    int getVal() {
        return value;
    }
};

int main() {
    const MyClass ob(80);
    cout << "The value is: " << ob.getVal();
}

আউটপুট

[Error] passing 'const MyClass' as 'this' argument of 'int MyClass::getVal()' discards qualifiers [-fpermissive]
  1. C++-এ ফ্রেন্ড ক্লাস এবং ফাংশন

  2. C++-এ extern স্টোরেজ ক্লাস

  3. C++-এ const কোয়ালিফায়ার কেন ব্যবহার করি?

  4. C++-এ const কিওয়ার্ড কী?