C++ গেটার এবং সেটার্স পদ্ধতি

C Getara Ebam Setarsa Pad Dhati



সর্বাধিক ব্যবহৃত উচ্চ-স্তরের ভাষাগুলির মধ্যে একটি হল C++ যা আমাদের বিভিন্ন ক্রিয়াকলাপ এবং ফাংশনে সহায়তা করে। উপরন্তু, এটি ফাংশন ঘোষণা ধারণকারী বেশ কয়েকটি হেডার ফাইল অফার করে এবং আমরা C++ কোডে ক্লাস তৈরি করতে পারি। এই বৈশিষ্ট্যগুলি আমাদের কাজকে আরও সুবিধাজনক করে তোলে। এনক্যাপসুলেশন নীতির মূল হল গেটার এবং সেটার্স। Getters ব্যক্তিগত তথ্য জনসাধারণের কাছে পৌঁছানোর যোগ্য করে তোলে। তারা ফিরে আসা ফলাফল কিছুটা পরিবর্তন করতে পারে। সেটাররা একটি ব্যক্তিগত পরিবর্তনশীল পরিবর্তন করা সম্ভব করে তোলে। তারা গুরুত্বপূর্ণ কারণ তারা একটি মান সেট করার আগে একটি নিশ্চিতকরণ অফার করতে পারে। আসুন এখানে আমাদের C++ কোডগুলিতে এই গেটার এবং সেটার্স প্রয়োগ করি।

উদাহরণ 1:

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







তারপর, আমরা এখানে একটি 'টেবিল' ক্লাস তৈরি করি এবং 'int' ডাটা টাইপ সহ 'count' নামে একটি প্রাইভেট ভেরিয়েবল শুরু করি এবং '15' এর মান হিসাবে সংরক্ষণ করি। এর পরে, আমরা 'পাবলিক' কীওয়ার্ড সন্নিবেশ করি। তারপর, আমরা “getCount()” নামে একটি ফাংশন তৈরি করি। এর ডাটা টাইপ হল 'int'। এটি এখানে গেটার ফাংশন. আমরা 'রিটার্ন' কীওয়ার্ড ব্যবহার করে এই ফাংশনে এই 'গণনা' ফিরিয়ে দিই। তারপর, আমরা নিম্নলিখিত 'main()' ফাংশনটি চালু করি যেখানে আমরা 'T_obj' নাম দিয়ে পূর্ববর্তী ক্লাসের অবজেক্ট তৈরি করি। তারপর, গণনার মান পেতে এবং এখানে ফলাফল প্রিন্ট করতে আমরা 'cout' স্টেটমেন্টে এই ক্লাস অবজেক্টের সাথে 'getCount()' ফাংশনকে কল করি।



কোড 1:

#include

# অন্তর্ভুক্ত করুন

ব্যবহার নামস্থান std ;

ক্লাস টেবিল

{

ব্যক্তিগত :
int গণনা = পনের ;
সর্বজনীন :
int getCount ( )
{
ফিরে গণনা ;
}
} ;
int প্রধান ( )
{
টেবিল T_obj ;


cout << 'আমরা এখানে টেবিলের সংখ্যাগুলি পাই যা হল:' << T_obj. getCount ( ) ;

}

আউটপুট:

এই কোডটির সম্পূর্ণ এবং সফল সংকলন করার পরে, আমরা এই কাঙ্খিত আউটপুটটি পাই যাতে আমরা দেখতে পারি যে এটি গণনা মান পেয়েছে এবং এটি এখানে প্রদর্শন করবে যা '15'। এটি 'প্রাইভেট' ক্লাসের ভিতরে শুরু করা হয়।







উদাহরণ 2:

এই কোডের জন্য প্রয়োজনীয় 'স্ট্রিং' এবং 'iostream' হেডার ফাইলগুলি এখানে অন্তর্ভুক্ত করা হয়েছে৷ তারপরে 'নেমস্পেস std' অন্তর্ভুক্ত করা হয়েছে। এর পরে, আমরা 'MySquareClass' ক্লাসের একটি নতুন উদাহরণ তৈরি করি, 'int' ডেটা টাইপ সহ 'squareSide' নামক একটি প্রাইভেট ভেরিয়েবল শুরু করি এবং এর মান '5' এ সেট করি। তারপরে 'পাবলিক' কীওয়ার্ড যোগ করা হয় এবং 'int' ডেটা টাইপ সহ 'getSquareSide()' নামে একটি ফাংশন তৈরি করা হয়।

এখানে, এটি 'গেটার' ফাংশন হিসাবে উল্লেখ করা হয়েছে। এর ভিতরে, আমরা 'বর্গক্ষেত্র' 'রিটার্ন' করি। সুতরাং, যখন আমরা এই ফাংশনটিকে কল করি, তখন এটি 'squareSide' মান দেয়। এর পরে, আমরা 'getSquarePerimeter()' নামে আরেকটি ফাংশন রাখি। এখানে, আমরা ঘের খুঁজে বের করার জন্য সূত্রটি রাখি যাতে এটি বর্গক্ষেত্রের বাহুর মান পেয়ে এবং '4' দিয়ে গুণ করার পরে বর্গক্ষেত্রের পরিসীমা ফেরত দেয়। আমাদের বর্গক্ষেত্রের ক্ষেত্রফলও খুঁজে বের করতে হবে। এই উদ্দেশ্যে, আমরা “getSquareArea()” নামে আরও একটি ফাংশন বিকাশ করি এবং একটি সূত্রের সাহায্যে বর্গক্ষেত্রের ক্ষেত্রফল গণনা করি যা বর্গক্ষেত্রের দিকগুলিকে গুণ করে। যখনই আমরা এটিকে কল করি তখন এটি বর্গক্ষেত্রের ক্ষেত্রফল প্রদান করে এবং পূর্ববর্তী 'squareSide' ভেরিয়েবল থেকে বর্গক্ষেত্রটির মান পায়।



এখন, আমাদের এই ফাংশনগুলিকে কল করতে হবে। আমরা 'main()' চালু করি এবং তারপর 'sq_obj1' নাম দিয়ে 'MySquareClass' এর একটি অবজেক্ট তৈরি করি। এর পরে, আমরা এই ক্লাস অবজেক্টের সাথে তিনটি ফাংশন আলাদাভাবে কল এবং প্রিন্ট করি।

কোড 2:

#include

# অন্তর্ভুক্ত করুন

ব্যবহার নামস্থান std ;

ক্লাস মাইস্কয়ারক্লাস

{

ব্যক্তিগত :

int বর্গক্ষেত্র = 5 ;
সর্বজনীন :
int getSquareSide ( )
{
ফিরে বর্গক্ষেত্র ;
}
int getSquarePerimeter ( )
{
ফিরে বর্গক্ষেত্র * 4 ;
}
int getSquareArea ( )
{
ফিরে বর্গক্ষেত্র * বর্গক্ষেত্র ;
}
} ;
int প্রধান ( )
{
MySquareClass sq_obj1 ;

cout << 'বর্গক্ষেত্রের দিক =' <<

sq_obj1. getSquareSide ( ) << endl ;

cout << 'বর্গক্ষেত্রের পরিধি =' <<

sq_obj1. getSquarePerimeter ( ) << endl ;

cout << 'বর্গক্ষেত্রের ক্ষেত্রফল =' <<

sq_obj1. getSquareArea ( ) << endl ;

}

আউটপুট:

প্রথমে, এটি “getSquareSide()” ফাংশনের সাহায্যে স্কোয়ারের সাইড প্রদর্শন করে, যা “5”। তারপর, এটি “getSquarePerimeter()” ফাংশন এবং “getSquareArea()” ফাংশন ব্যবহার করে বর্গক্ষেত্রের ক্ষেত্রফল ব্যবহার করে বর্গক্ষেত্রের পরিধি প্রিন্ট করে।

উদাহরণ 3:

এখানে, আমাদের 'ড্রাইভার' ক্লাস আছে যেখানে আমরা 'প্রাইভেট' কীওয়ার্ড রাখি এবং 'int' ডাটা টাইপ সহ 'ড্রাইভারস্যালারি' কে প্রাইভেট মেম্বার হিসাবে ঘোষণা করি। এর পরে, আমাদের 'পাবলিক' আছে যেখানে আমরা একটি 'setDriverSalary' ফাংশন তৈরি করি এবং এই ফাংশনের প্যারামিটার হিসাবে 'int d_s' পাস করি। এটি এই কোডের এখানে সেটার ফাংশন। এখন, আমরা এই ফাংশনের ভিতরে “driverSalary” ভেরিয়েবলে “d_s” বরাদ্দ করি।

এর পরে, আমরা 'getDriverSalary' নামে গেটার ফাংশন তৈরি করি এবং ড্রাইভারের বেতন ফেরত দিই। এখন, “main()” চালু করার পর, আমরা ক্লাসের একটি অবজেক্ট তৈরি করি যা হল “driverObj_1” এবং “setDriverSalary()” ফাংশনকে কল করে এবং এর প্যারামিটার হিসেবে “30000” পাস করে ড্রাইভারের বেতনের মান সেট করি। ড্রাইভারের বেতন। তারপর, আমরা “getDriverSalary()” ফাংশন কল করে এই বেতন প্রিন্ট করি।

কোড 3:

# অন্তর্ভুক্ত করুন

ব্যবহার নামস্থান std ;

ক্লাস ড্রাইভার {

ব্যক্তিগত :
int ড্রাইভারের বেতন ;
সর্বজনীন :
অকার্যকর ড্রাইভারের বেতন সেট করুন ( int ডি এস ) {
ড্রাইভারের বেতন = ডি এস ;
}
int ড্রাইভার বেতন পান ( ) {
ফিরে ড্রাইভারের বেতন ;
}
} ;
int প্রধান ( ) {
ড্রাইভার ড্রাইভারObj_1 ;
ড্রাইভারObj_1. ড্রাইভারের বেতন সেট করুন ( 30000 ) ;


cout << 'চালকের বেতন হল:' << ড্রাইভারObj_1. ড্রাইভার বেতন পান ( ) ;

ফিরে 0 ;

}

আউটপুট:

এখানে, আমরা ড্রাইভারের বেতন নির্ধারণ করি এবং এটি সেট করে আউটপুট স্ক্রিনে প্রদর্শন করার পরে তার বেতন পাই।

উদাহরণ 4:

এই কোডে 'ব্যক্তি' শ্রেণী তৈরি করা হয়েছে যেখানে আমরা 'স্ট্রিং' ডেটা টাইপ সহ 'P_name', 'P_city' এবং 'P_language' নামে তিনটি 'ব্যক্তিগত' ভেরিয়েবল ঘোষণা করি। এর পরে, আমরা একটি 'পাবলিক' কনস্ট্রাক্টর তৈরি করি। এখানে, আমরা 'setPersonName()' ফাংশন রাখি এবং ফাংশনের প্যারামিটার হিসাবে 'string newName' রাখি। এর পরে, আমরা এই 'নতুন নাম'টিকে 'P_name' ভেরিয়েবলে বরাদ্দ করি। তারপর, আমরা “getPersonCity()” ফাংশন তৈরি করি এবং “P_city” ফেরত দিই। একই পদ্ধতিতে, আমরা “setPersonCity()” নামের আরেকটি ফাংশন তৈরি করি। তারপর, আমরা প্যারামিটার হিসাবে 'স্ট্রিং সিটি' পাস করি।

'শহর' ভেরিয়েবলটি এখন 'P_city' ভেরিয়েবলের সাথে বরাদ্দ করা হয়েছে। এখানে 'getPersonLanguage()' হল পরবর্তী ফাংশন যা 'P_language' প্রদান করে। তাছাড়া, আমরা “setPersonLanguage()” ফাংশনটিকেও সংজ্ঞায়িত করি এবং এটিকে প্যারামিটার হিসাবে “lang” স্ট্রিংটি পাস করি। 'lang' তারপর 'P_language' ভেরিয়েবলে বরাদ্দ করা হয়। এর পরে, আমাদের আরও দুটি ফাংশন আছে, 'life()' এবং 'speak()', যেখানে আমরা 'cout()' স্টেটমেন্ট ব্যবহার করি।

'main()' মেথড এক্সিকিউট করার পর, আমরা এখন 'p_obj1' নামক ক্লাসের একটি অবজেক্ট তৈরি করি। এখানে, আমরা 'setPersonName()' ফাংশন চালিয়ে ব্যক্তির নাম সেট করি এবং তার প্যারামিটার হিসাবে 'স্যামুয়েল' এর নাম প্রদান করি। এর পরে, আমরা 'setPersonCity()' ফাংশনটি কল করে এবং প্যারামিটার হিসাবে 'London' পাস করে ব্যক্তির শহর সেট করি। তারপর, আমরা 'setPersonLanguage()' ফাংশন ব্যবহার করে ব্যক্তির ভাষা সেট করি এবং এর প্যারামিটার হিসাবে 'ইংরেজি' পাস করি। এখন, আমরা 'p_obj1' ক্লাসের অবজেক্টের সাথে আলাদাভাবে 'life()' এবং 'speak()' ফাংশনকে কল করি।

কোড 4:

# অন্তর্ভুক্ত করুন

ব্যবহার নামস্থান std ;

ক্লাস ব্যক্তি

{

ব্যক্তিগত :
স্ট্রিং P_name ;
স্ট্রিং P_city ;
স্ট্রিং P_language ;

সর্বজনীন :
অকার্যকর setPersonname ( স্ট্রিং newName ) {
পি_নাম = নতুন নাম ;
}

স্ট্রিং getPersonCity ( ) {
ফিরে P_শহর ;
}

অকার্যকর setPersonCity ( স্ট্রিং শহর ) {
P_শহর = শহর ;
}

স্ট্রিং getPersonLanguage ( ) {
ফিরে P_ভাষা ;
}

অকার্যকর setPerson Language ( স্ট্রিং ল্যাং ) {
P_ভাষা = শুধু ;
}

অকার্যকর জীবন ( )
{


cout << পি_নাম << ' বাস করে ' << P_শহর << endl ;

}

অকার্যকর কথা বলা ( )
{


cout << পি_নাম << 'কথা বলে' << P_ভাষা << endl ;

}

} ;

int প্রধান ( ) {

ব্যক্তি p_obj1 ;
p_obj1. setPersonname ( 'স্যামুয়েল' ) ;
p_obj1. setPersonCity ( 'লন্ডন' ) ;
p_obj1. setPerson Language ( 'ইংরেজি' ) ;

p_obj1. জীবন ( ) ;
p_obj1. কথা বলা ( ) ;

ফিরে 0 ;


}

আউটপুট:

এখানে, এটি ফলাফল হিসাবে আমাদের কোডে সেট করা সমস্ত মান দেখায়। আমরা যে ফাংশনটি তৈরি করেছি তাকে কল করে আমরা এই ফলাফলটি পাই।

উপসংহার

আমরা এই নির্দেশিকায় C++ প্রোগ্রামিং-এ গেটার এবং সেটার্স অন্বেষণ করেছি। আমরা ব্যাখ্যা করেছি যে 'গেটার' এবং 'সেটার' পদ্ধতিগুলি ক্লাসের অভ্যন্তরীণ ক্রিয়াকলাপগুলির আরও ভাল বিমূর্ততা এবং এনক্যাপসুলেশন সরবরাহ করে। উপরন্তু, আমরা অন্বেষণ করেছি যে ডেটা সদস্যকে রক্ষা করার জন্য ডেটা বৈধতার কার্যকারিতা বজায় রাখা হয়েছে, ক্লাসটিকে বহিরাগত কোডকে প্রভাবিত না করেই তার কোড পরিবর্তন করার অনুমতি দেয়। আমরা এই গেটার এবং সেটারগুলি ব্যবহার করে C++ কোডগুলির সাথে এটি করেছি।