কিভাবে C++ এ অ্যাক্সেস মডিফায়ার নিয়ন্ত্রণ করবেন: সদস্যের দৃশ্যমানতা বোঝা

Kibhabe C E A Yaksesa Madiphayara Niyantrana Karabena Sadasyera Drsyamanata Bojha



ডেটা লুকানো হল C++ এর অন্যতম প্রধান বৈশিষ্ট্য যা একটি ক্লাসে ডেটার অ্যাক্সেস সীমিত করার কথা বোঝায় যাতে বাইরে থেকে কোনও ক্লাসের ডেটাতে অবাঞ্ছিত অ্যাক্সেস রোধ করা যায়। সুতরাং, কোন শ্রেণীর সদস্যরা কোন বাইরের উৎসে অ্যাক্সেসযোগ্য এবং কোনটি নয় তা নির্ধারণ করতে অ্যাক্সেস মডিফায়ার ব্যবহার করা হয়।

C++ এ মডিফায়ার অ্যাক্সেস করুন

অ্যাক্সেস মডিফায়ারগুলি একটি ক্লাসের ডেটার অ্যাক্সেসযোগ্যতা এবং দৃশ্যমানতা পরিচালনা করতে ব্যবহৃত হয়। তারা ডেটা সদস্যদের জন্য কিছু বিধিনিষেধ সেট করে যাতে তারা বাইরের ফাংশনগুলি অ্যাক্সেস করতে না পারে। C++ এ অ্যাক্সেস মডিফায়ার তিন ধরনের হয়:

C++ এ পাবলিক অ্যাক্সেস মডিফায়ার

কীওয়ার্ড পাবলিকের অধীনে ঘোষিত ক্লাসের সমস্ত সদস্য প্রোগ্রামের মধ্যে ক্লাসের বাইরের সমস্ত ফাংশনের জন্য উপলব্ধ থাকবে। ডাইরেক্ট মেম্বার এক্সেস অপারেটর (.) যা ডট অপারেটর নামেও পরিচিত, এই ডাটা সদস্যদের অ্যাক্সেস করার জন্য সেই নির্দিষ্ট ক্লাসের বস্তুর সাথে ব্যবহার করা যেতে পারে।







উদাহরণ

পাবলিক অ্যাক্সেস মডিফায়ার একটি ক্লাস ঘোষণা করতে ব্যবহৃত হয়, এবং এর ডেটা সদস্যরা প্রোগ্রামের মধ্যে অন্যান্য ফাংশন দ্বারা অ্যাক্সেস করা হয়।



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

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

#include

নামস্থান std ব্যবহার করে ;
শ্রেণী ত্রিভুজ
{
পাবলিক :
ভাসা এক্স , এবং , সঙ্গে ;
অকার্যকর ইনপুট ( )
{
cout << 'একটি ত্রিভুজের বাহু x লিখুন:-' ;
খাওয়া >> এক্স ;
cout << 'একটি ত্রিভুজের পাশে y লিখুন:-' ;
খাওয়া >> এবং ;
cout << 'একটি ত্রিভুজের পার্শ্ব z লিখুন:-' ;
খাওয়া >> সঙ্গে ;
}
অকার্যকর এলাকা ( )
{
ভাসা s = ( এক্স + এবং + সঙ্গে ) / 2 ;
ভাসা এলাকা = sqrt ( s * ( s - এক্স ) * ( s - এবং ) * ( s - সঙ্গে ) ) ;
cout << ' \n ত্রিভুজের ক্ষেত্রফল =' << এলাকা ;
}
} ;
int প্রধান ( )
{
ত্রিভুজ t1 ;
t1. ইনপুট ( ) ;
t1. এলাকা ( ) ;
ফিরে 0 ;
}

ত্রিভুজটি ক্লাস হিসাবে সংজ্ঞায়িত করা হয় এবং এর পরামিতিগুলি সর্বজনীন কীওয়ার্ডের অধীনে থাকে। তারপর পাবলিক মডিফায়ারের ডেটা সদস্যদের অ্যাক্সেসের মাধ্যমে এই শ্রেণীর বাইরে ত্রিভুজের ক্ষেত্রফল গণনা করা হয়।







ত্রিভুজের তিনটি বাহু ব্যবহারকারীর দ্বারা ইনপুট করা হয় এবং ত্রিভুজের ক্ষেত্রফল ক্লাসের বাইরের মানগুলি অ্যাক্সেস করার মাধ্যমে গণনা করা হয়, স্ট্যান্ডার্ড সূত্র ব্যবহার করে, যা হল 13.4164।

C++ এ ব্যক্তিগত অ্যাক্সেস মডিফায়ার

প্রাইভেট কীওয়ার্ডের অধীনে ঘোষিত ক্লাসের সমস্ত সদস্য প্রোগ্রামে ক্লাসের বাইরের কোনও ফাংশনে উপলব্ধ থাকবে না। এই প্রাইভেট সদস্যদের শুধুমাত্র একই শ্রেণীর মধ্যে সরাসরি সদস্যদের দ্বারা পড়তে পারেন. যাইহোক, বন্ধু ফাংশন এবং ক্লাসগুলিও ডেটা অ্যাক্সেস করতে পারে।



উদাহরণ

সরকারি ও বেসরকারি দুটি শ্রেণী ঘোষণা করা হয় এবং প্রোগ্রামের রিটার্ন মান ত্রিভুজের ক্ষেত্রফল হতে হবে।

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

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

#include

নামস্থান std ব্যবহার করে ;
শ্রেণী ত্রিভুজ
{

ব্যক্তিগত :
ভাসা এক্স , এবং , সঙ্গে ;
পাবলিক :
অকার্যকর ইনপুট ( )

{

cout << 'একটি ত্রিভুজের বাহু x লিখুন:-' ;
খাওয়া >> এক্স ;
cout << 'একটি ত্রিভুজের পাশে y লিখুন:-' ;
খাওয়া >> এবং ;
cout << 'একটি ত্রিভুজের পার্শ্ব z লিখুন:-' ;
খাওয়া >> সঙ্গে ;

}
অকার্যকর এলাকা ( )
{

ভাসা s = ( এক্স + এবং + সঙ্গে ) / 2 ;
ভাসা এলাকা = sqrt ( s * ( s - এক্স ) * ( s - এবং ) * ( s - সঙ্গে ) ) ;
cout << ' \n ত্রিভুজের ক্ষেত্রফল =' << এলাকা ;

}

} ;

int প্রধান ( )
{
ত্রিভুজ t1 ;
t1. ইনপুট ( ) ;
t1. এলাকা ( ) ;
ফিরে 0 ;

}

main(), অবজেক্ট t1 সরাসরি প্রাইভেট ক্লাস ভেরিয়েবল ফ্লোট x, y এবং z-এ অ্যাক্সেস করতে পারে না, তাই এটি শুধুমাত্র পাবলিক ফাংশন ইনপুট(), যেহেতু এই ফাংশনটি x, y এবং z-এর মান প্রাপ্ত করে তার মাধ্যমে পরোক্ষভাবে ম্যানিপুলেট করা যায়।

ত্রিভুজটির ক্ষেত্রফল পাবলিক ক্লাস ব্যবহার করে এটি ব্যবহার করে প্রাইভেট ক্লাসে প্রবেশ করে প্রাপ্ত করা হয়। যদি x, y এবং z-এর মানগুলি পাবলিক ক্লাসে ঘোষণা করা না হয়, তাহলে সেগুলিকে গণনার জন্য main()-এ অ্যাক্সেস করা হবে না।

C++ এ সুরক্ষিত অ্যাক্সেস মডিফায়ার

সুরক্ষিত কীওয়ার্ডের অধীনে সদস্য এবং ফাংশনগুলি সুরক্ষিত, সেগুলি শুধুমাত্র ক্লাস এবং প্রাপ্ত ক্লাসের মধ্যে অ্যাক্সেস করা যেতে পারে। বাকি ক্লাস তাদের ডেটা অ্যাক্সেস করতে পারে না। তারা অত্যন্ত সুরক্ষিত।

উদাহরণ

সুরক্ষিত কীওয়ার্ডের অধীনে সুরক্ষিত ডেটা শুধুমাত্র ক্লাসের মধ্যে এবং ক্লাসের দ্বারা পড়া যেতে পারে যা প্রাপ্ত ক্লাস। এই উদাহরণটি সুরক্ষিত অ্যাক্সেস মডিফায়ারের ব্যবহারিক প্রদর্শন।

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

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

#include

নামস্থান std ব্যবহার করে ;
// অভিভাবক শ্রেণী
শ্রেণী ত্রিভুজ
{

সুরক্ষিত :
ভাসা এক্স , এবং , সঙ্গে ;
} ;
//শিশু শ্রেণী
ক্লাস ট্রায়াঙ্গেল চাইল্ড : পাবলিক ট্রায়াঙ্গেল {
পাবলিক :
অকার্যকর ইনপুট ( )

{

cout << 'একটি ত্রিভুজের বাহু x লিখুন:-' ;
খাওয়া >> এক্স ;
cout << 'একটি ত্রিভুজের পাশে y লিখুন:-' ;
খাওয়া >> এবং ;
cout << 'একটি ত্রিভুজের পার্শ্ব z লিখুন:-' ;
খাওয়া >> সঙ্গে ;

}
অকার্যকর এলাকা ( )
{
ভাসা s = ( এক্স + এবং + সঙ্গে ) / 2 ;
ভাসা এলাকা = sqrt ( s * ( s - এক্স ) * ( s - এবং ) * ( s - সঙ্গে ) ) ;
cout << ' \n ত্রিভুজের ক্ষেত্রফল =' << এলাকা ;

}
} ;

int প্রধান ( )

{
ত্রিভুজ শিশু শিশু ;
শিশু। ইনপুট ( ) ;
শিশু। এলাকা ( ) ;
ফিরে 0 ;

}

TriangleChild হল একটি উত্তরাধিকারী শ্রেণী যা ত্রিভুজ শ্রেণী থেকে উদ্ভূত। x, y এবং z ভেরিয়েবলগুলি সুরক্ষিত কীওয়ার্ড দিয়ে ত্রিভুজে ঘোষণা করা হয়েছে। এর মানে হল যে এই ভেরিয়েবলগুলি সুরক্ষিত কিন্তু TriangleChild দ্বারা অ্যাক্সেস করা যেতে পারে যেহেতু Triangle এর মূল শ্রেণী। ভেরিয়েবলের মানগুলি ট্রায়াঙ্গলচাইল্ডে বরাদ্দ করা হয়েছে যদিও সেগুলি ত্রিভুজ শ্রেণীতে ঘোষণা করা হয়েছে।

ভেরিয়েবলগুলি চাইল্ড ক্লাসের মাধ্যমে অ্যাক্সেস করা হয় এবং তারপর একটি ত্রিভুজের ক্ষেত্রফল গণনা করা হয়।

উপসংহার

ডেটা লুকানো বাইরে থেকে একটি ক্লাসের ডেটাতে অবাঞ্ছিত অ্যাক্সেসকে বাধা দেয়। অ্যাক্সেস মডিফায়ারগুলি একটি প্রোগ্রামে ডেটার অ্যাক্সেসযোগ্যতা এবং দৃশ্যমানতা পরিচালনা করতে ব্যবহৃত হয়। ডেটা লুকানোর জন্য ব্যক্তিগত, সুরক্ষিত এবং পাবলিক অ্যাক্সেস মডিফায়ার ব্যবহার করা হয়। পাবলিক কীওয়ার্ডের অধীনে থাকা ডেটা ক্লাসের বাইরে থেকেও ফাংশন দ্বারা পড়তে পারে। ব্যক্তিগত হিসাবে ঘোষিত ডেটা শুধুমাত্র ক্লাসের মধ্যেই পড়া যায়, যখন সুরক্ষিত ডেটা অভিভাবক এবং শিশু শ্রেণীর দ্বারাও অ্যাক্সেস করা যায়।