C++ Const ফাংশনের উদাহরণ

C Const Phansanera Udaharana



এই নিবন্ধটি 'const' কীওয়ার্ডের উপর ফোকাস করে যা C++ এ ফাংশনের সাথে ব্যবহৃত হয়। 'const' কীওয়ার্ডটিকে ধ্রুবক মান হিসাবে উল্লেখ করা হয় যা আমরা প্রোগ্রামটি কার্যকর করার সময় পরিবর্তন করতে পারি না। C++-এ “const” ফাংশন হল সেই ফাংশন যার ডেটা মেম্বাররা তাদের ক্লাসে পরিবর্তন করতে সীমাবদ্ধ। 'চলমান' ফাংশনগুলি দক্ষতার সাথে ব্যবহার করা হয় কারণ তারা বস্তুর মানের অপ্রত্যাশিত পরিবর্তনগুলি এড়াতে পারে।

উদাহরণ 1: C++ এ কনস্ট সদস্য ফাংশনের প্রোগ্রাম

এখানে, আমাদের কনস্ট সদস্য ফাংশনের একটি সাধারণ প্রোগ্রাম রয়েছে:

#অন্তর্ভুক্ত করুন
ব্যবহার নামস্থান std ;
ক্লাস আমার ক্লাস {
int একের উপর ;
সর্বজনীন :
আমার ক্লাস ( int n = 0 ) {
একের উপর = n ;
}
int getValue ( ) const {
ফিরে একের উপর ;
}
} ;
int প্রধান ( ) {
const মাইক্লাস গ ( 30 ) ;
মাইক্লাস c1 ( 5 ) ;
cout << 'অবজেক্ট c ব্যবহার করে সংখ্যা :' << গ. getValue ( ) ;
cout << ' \n বস্তু c1 ব্যবহার করে সংখ্যা : ' << c1. getValue ( ) ;
ফিরে 0 ;
}

প্রাথমিকভাবে, আমরা হেডার ফাইলটি সংজ্ঞায়িত করি যা প্রোগ্রাম ইনপুট/আউটপুট স্ট্রিমগুলিকে সক্ষম করে। তারপর, আমরা 'MyClass' ক্লাস সেট করি যেখানে আমরা একটি 'num' ভেরিয়েবল এবং MyClass() ফাংশনের সদস্য ফাংশন এবং getVal() ফাংশন ঘোষণা করি। MyClass() ফাংশনের ভিতরে, আমরা '0' এর মান সহ 'n' প্যারামিটার সেট করি। তারপর, 'n' আর্গুমেন্ট 'num' ভেরিয়েবলের জন্য নির্ধারিত হয়। এরপরে, আমরা getVal() ফাংশনটিকে 'const' কীওয়ার্ড দিয়ে কল করি, যা নির্দেশ করে যে বস্তুর বর্তমান অবস্থা একটি ফাংশন কলে পরিবর্তন করা যাবে না। getVal() ফাংশন 'num' সদস্য ভেরিয়েবল প্রদান করে।







অবশেষে, আমরা main() ফাংশনে পৌঁছাই। এখানে, আমরা MyClass() ফাংশনের 'c' এবং 'c1' অবজেক্টগুলিকে সংজ্ঞায়িত করি এবং এই অবজেক্টগুলিতে মানগুলিও পাস করি৷ 'c' অবজেক্টটি 'const' কীওয়ার্ড দিয়ে সেট করা হয়েছে, এটি নির্দেশ করে যে এই অবজেক্টের জন্য নির্ধারিত মান পরিবর্তন করা যাবে না।



অবজেক্ট দ্বারা কল করা কনস্ট মেম্বার ফাংশনের আউটপুট নীচে দেখানো হয়েছে। এইভাবে, আমরা সদস্য ফাংশন এবং বস্তুর সাথে 'const' কীওয়ার্ড ব্যবহার করতে পারি:







উদাহরণ 2: C++ এ ক্লাসের বাইরে কনস্ট সদস্যের ফাংশনের প্রোগ্রাম

এখন, আমাদের আরেকটি বাস্তবায়ন আছে যেখানে const মেম্বার ফাংশন একটি ক্লাস সংজ্ঞার বাইরে সংজ্ঞায়িত করা হয়েছে এবং একটি const মেম্বার ফাংশন ব্যবহার করে একটি প্রাইভেট মেম্বার ভেরিয়েবল ভ্যালু সেট ও পুনরুদ্ধার করা হয়েছে।

# অন্তর্ভুক্ত করুন
ব্যবহার নামস্থান std ;

ক্লাস নিউক্লাস {
int i ;

সর্বজনীন :
অকার্যকর সেট_রেকর্ড ( int ) ;

int get_record ( ) const ;
} ;

অকার্যকর নিউক্লাস :: সেট_রেকর্ড ( int এক্স ) { i = এক্স ; }
int নিউক্লাস :: get_record ( ) const { ফিরে i ; }

int প্রধান ( )
{
নিউক্লাস গ ;
গ. সেট_রেকর্ড ( 10 ) ;
cout << গ. get_record ( ) ;

ফিরে 0 ;
}

এখানে, আমরা প্রথমে একটি ক্লাস স্থাপন করি, “NewClass”, যেখানে আমরা প্রাইভেট রাখা “i” ভেরিয়েবল শুরু করি। এর পরে, আমাদের কাছে একটি সর্বজনীন কীওয়ার্ড রয়েছে যেখানে set_record() এবং get_record() সদস্য ফাংশনগুলি সংজ্ঞায়িত করা হয়েছে। set_record() মেম্বার ফাংশনটি 'i' ভেরিয়েবলের মান সেট করতে এবং get_record() ফাংশনটি এখানে 'i' ভেরিয়েবলের মান ফেরাতে ব্যবহৃত হয়। মনে রাখবেন যে আমরা get_record() মেম্বার ফাংশনের সাথে 'const' কীওয়ার্ড ব্যবহার করি যা এটিকে const মেম্বার ফাংশন হিসাবে উপস্থাপন করে এবং অবজেক্ট স্টেট পরিবর্তন করা যায় না। এর পরে, 'i' ভেরিয়েবল মান সেট করার জন্য আমাদের কাছে একটি set_record() ফাংশন সংজ্ঞা রয়েছে।



একইভাবে, “i” ভেরিয়েবল মান পুনরুদ্ধার করার জন্য আমাদের কাছে get_record() ফাংশনের সংজ্ঞা রয়েছে। তারপর, আমরা main() ফাংশন সেট করি যেখানে আমাদের কাছে 'NewClass' ক্লাসের 'c' অবজেক্টের ঘোষণা আছে। তারপর, 'set_record', একটি নন-কনস্ট সদস্য ফাংশন, যাকে 'z' ভেরিয়েবলের একটি মান নির্ধারণ করতে বলা হয়। চলমান, আমরা “i” এর মান প্রিন্ট করতে get_record() const সদস্য ফাংশনকে কল করি।

প্রাইভেট মেম্বার ভেরিয়েবলের মান কনস্ট মেম্বার ফাংশন দ্বারা বলা হয় এবং নিম্নলিখিত প্রম্পটে দেখানো হয়:

উদাহরণ 3: একটি স্বাধীন ফাংশন হিসাবে ক্লাসের বাইরে সংজ্ঞায়িত একটি কন্সট সদস্য ফাংশনের প্রোগ্রাম

যাইহোক, আমরা const মেম্বার ফাংশনের আরেকটি কেস প্রয়োগ করি যেখানে 'const' কীওয়ার্ড সহ মেম্বার ফাংশনটিকে ক্লাসের বাইরে একটি স্বতন্ত্র ফাংশন হিসাবে বলা হয়।

#include
ব্যবহার নামস্থান std ;
ক্লাস সমীকরণ {
int n1, n2 ;
সর্বজনীন :
অকার্যকর সেট_সমীকরণ ( int এক্স, int এবং )
{
n1 = এক্স ;
n2 = এবং ;
}
অকার্যকর সমীকরণ দেখান ( )
{
cout << 'সমীকরণটি হল:' << n1 << '+' << n2 << 'খ' << endl ;
}
বন্ধু অকার্যকর এটা একটা মজা ( const সমীকরণ ) ;
} ;
অকার্যকর এটা একটা মজা ( const সমীকরণ বস্তু )
{
cout << 'ফাংশন ব্যবহার করে সমীকরণ হল:' << বস্তু n1 << '+' << বস্তু n2 << 'খ' << endl ;
}
int প্রধান ( )
{
সমীকরণ বস্তু ;
বস্তু সেট_সমীকরণ ( 5 , 8 ) ;
বস্তু সমীকরণ দেখান ( ) ;
এটা একটা মজা ( বস্তু ) ;
}

এখানে, আমরা “Equation()” ক্লাস তৈরি করি এবং তারপর “n1” এবং “n2” ভেরিয়েবল ঘোষণা করি। এখানে, আমরা “n1” এবং “n2” ভেরিয়েবলের মান সেট করতে set_Equation() সদস্য ফাংশন যোগ করি। show_Equation() ফাংশন এই ভেরিয়েবল ব্যবহার করে তৈরি করা সমীকরণ দেখায়।

এর পরে, আমাদের কাছে funIs() এর একটি ফাংশন ঘোষণা রয়েছে যা 'বন্ধু' কীওয়ার্ড ব্যবহার করে সংজ্ঞায়িত করা হয়েছে। এই 'বন্ধু' কীওয়ার্ডটি আমাদের 'সমীকরণ' ক্লাসের ব্যক্তিগত সদস্যকে অ্যাক্সেস করতে দেয়। এর পরে, আমরা ক্লাসের বাইরে “funIs()” ফ্রেন্ড ফাংশনকে কল করি এবং “Equation” ক্লাসের “obj” প্যারামিটারটিকে const হিসাবে ইনপুট করি। শেষ পর্যন্ত, আমাদের একটি main() ফাংশন আছে যেখানে আমরা “Equation” ক্লাসের অবজেক্ট ডিক্লেয়ার করি। তারপর, আমরা set_Equation() ফাংশন ব্যবহার করে “n1” এবং “n2” ভেরিয়েবলের মান নির্ধারণ করি। 'n1' এবং 'n2' ভেরিয়েবলগুলি show_Equation() ফাংশন ব্যবহার করে তাদের মান প্রদর্শন করতে ব্যবহৃত হয়। সবশেষে, আমরা সমীকরণ প্রদর্শনের জন্য 'Equation' ক্লাসের 'funIs' বন্ধু ফাংশনকে কল করি।

কনস্ট ফ্রেন্ড ফাংশন ব্যবহার করে সমীকরণ এবং সমীকরণ প্রম্পটে প্রদর্শিত হয়:

উদাহরণ 4: C++ এ মান আপডেট করার জন্য একটি কনস্ট সদস্য ফাংশনের প্রোগ্রাম (সবচেয়ে খারাপ ক্ষেত্রে)

প্রোগ্রামটি কনস্ট সদস্য ফাংশনের সবচেয়ে খারাপ পরিস্থিতি প্রদর্শন করে যেখানে আমরা 'কনস্ট সদস্য ফাংশনের ভিতরে' নামক ভেরিয়েবলের মান পরিবর্তন করার চেষ্টা করি।

# অন্তর্ভুক্ত করুন
ব্যবহার নামস্থান std ;

ক্লাস ডেটা {
int ভিতরে ;

পাবলিক :
অকার্যকর সেট ভ্যালু ( int i ) { ভিতরে = i ; }
int getValue ( ) const
{

++ ভিতরে ;
ফিরে ভিতরে ;
}

} ;

int প্রধান ( )
{
তথ্য d ;
d সেট ভ্যালু ( বিশ ) ;
cout << endl << d getValue ( ) ;

ফিরে 0 ;
}

এখানে, আমরা প্রথমে 'ডেটা' ক্লাস তৈরি করি এবং ক্লাসের মধ্যে 'v' ভেরিয়েবল ঘোষণা করি। এর পরে, আমরা 'পাবলিক' কীওয়ার্ড সেট করি এবং তারপর 'setValue()' এর ক্লাস মেম্বার ফাংশন ঘোষণা করি যা ক্লাসের কনস্ট্রাক্টর এবং getValue() যা ক্লাসের গেটার মেম্বার ফাংশন নির্দেশ করে। setValue() ফাংশন একটি প্যারামিটার হিসাবে 'i' ভেরিয়েবল নেয়। এই 'i' ভেরিয়েবলটি 'v' সদস্য ভেরিয়েবলের জন্য নির্ধারিত হয়।

এর পরে, আমাদের getValue() ফাংশনের সংজ্ঞা রয়েছে যেখানে আমরা 'v' ভেরিয়েবলের মান পুনরুদ্ধার করি। যেহেতু getValue() ফাংশনটি 'const' কীওয়ার্ডের সাথে ঘোষণা করা হয়েছে, এটি উপস্থাপন করে যে 'v' ভেরিয়েবলের মান কোনো অবস্থাতেই আপডেট করা যাবে না। যাইহোক, আমরা ইচ্ছাকৃতভাবে 'v' ভেরিয়েবলের মান পরিবর্তন করার জন্য এটিকে বৃদ্ধি করার চেষ্টা করি। প্রোগ্রাম এই পর্যায়ে পৌঁছে, একটি ত্রুটি নিক্ষেপ করা হয়. সবশেষে, আমাদের কাছে main() ফাংশন কল আছে যেখানে আমরা 'Data' ক্লাসের 'd' অবজেক্ট নির্ধারণ করি এবং এই 'd' অবজেক্টের জন্য '20' এর মান সেট করি। এর পরে, অবজেক্টের 'd' মান পেতে আমরা getValue() ফাংশনকে কল করি।

প্রম্পট পূর্ববর্তী বাস্তবায়নের ফলাফল তৈরি করে যেখানে এটি '++v' এ একটি ত্রুটি দেয় কারণ আমাদের কনস্ট সদস্য ফাংশন অবজেক্টের মান পরিবর্তন করার অনুমতি নেই:

উপসংহার

উপসংহারে, আমরা C++ এর const ফাংশনে ডুব দিই যা প্রোগ্রামের মানের দুর্ঘটনাজনিত পরিবর্তন এড়াতে ব্যবহৃত হয়। C++-এ const-এর সদস্য ফাংশনগুলি হল শুধুমাত্র-পঠনযোগ্য ফাংশন যার যে বস্তুগুলির উপর এটি বলা হয় তার পরিবর্তন অনুমোদিত নয়। আমরা C++-এ এর কার্যকারিতা প্রদর্শনের জন্য const ফাংশনের বিভিন্ন পরিস্থিতিতেও প্রয়োগ করেছি।