কি করে :: C++ এ কি করে?

Ki Kare C E Ki Kare



C++ হল একটি বহুমুখী প্রোগ্রামিং ভাষা যা ডেভেলপারদের বিস্তৃত কার্যকারিতা প্রদান করে। C++-এ সর্বাধিক ব্যবহৃত বৈশিষ্ট্যগুলির মধ্যে একটি হল সুযোগ রেজোলিউশন অপারেটর , নামেও পরিচিত ডাবল কোলন (::) . ভাষার একটি গুরুত্বপূর্ণ অংশ হওয়া সত্ত্বেও, ডবল কোলন অপারেটর অনেক ডেভেলপারদের জন্য বিভ্রান্তিকর হতে পারে, বিশেষ করে যারা এতে নতুন।

এই গাইডে, আমরা দেখব ডাবল কোলন (::) অপারেটর C++ এ এবং এটি বিভিন্ন পরিস্থিতিতে কিভাবে কাজ করে।

কি করে :: C++ এ কি করে?

C++ এ, সুযোগ রেজোলিউশন অপারেটর (::) বিভিন্ন সুযোগ স্তরে উপস্থিত ভেরিয়েবলের নামগুলি পুনরুদ্ধার করতে ব্যবহৃত হয়। প্রোগ্রামিং এর সুযোগ সেই প্রসঙ্গকে বোঝায় যেখানে ভেরিয়েবল এবং ফাংশন অ্যাক্সেস করা যেতে পারে।







C++ এর বিভিন্ন ক্ষেত্রে :: এর ব্যবহার

C++ এ, সুযোগ রেজোলিউশন অপারেটর (::) এটি যে প্রেক্ষাপটে ব্যবহৃত হয় তার উপর নির্ভর করে এর বিভিন্ন ব্যবহার রয়েছে। এই অপারেটরের কিছু উল্লেখযোগ্য ব্যবহার নিম্নরূপ:



1: একটি ভিন্ন নামস্থানে একটি পরিবর্তনশীল বা ফাংশন অ্যাক্সেস করুন

নামস্থান নামকরণের দ্বন্দ্ব এড়াতে C++-এ গোষ্ঠী সম্পর্কিত ফাংশন, ক্লাস এবং ভেরিয়েবল ব্যবহার করা হয়। যখন আপনি a এর মধ্যে একটি পরিবর্তনশীল বা ফাংশন সংজ্ঞায়িত করেন নামস্থান , ভেরিয়েবল বা ফাংশনের নাম শুধুমাত্র এর মধ্যেই দৃশ্যমান নামস্থান .



C++ এ, আপনি ব্যবহার করতে পারেন সুযোগ রেজোলিউশন অপারেটর (::) বরাবর নামস্থান নাম এবং একটি ভিন্ন নামস্থানে সংজ্ঞায়িত একটি ভেরিয়েবল বা ফাংশন অ্যাক্সেস করার জন্য ভেরিয়েবল বা ফাংশনের নাম। এটি আপনাকে a থেকে ভেরিয়েবল বা ফাংশন অ্যাক্সেস করতে দেয় নামস্থান এটি তৈরি করা হয়েছিল তা ছাড়া অন্য।





উপরের ক্ষেত্রে বোঝার জন্য, একটি উদাহরণ হিসাবে নিম্নলিখিত কোড বিবেচনা করুন:

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

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

নামস্থান গণিত {

const দ্বিগুণ পি.আই = 3.14159 ;

দ্বিগুণ বর্গক্ষেত্র ( দ্বিগুণ এক্স ) {

ফিরে এক্স * এক্স ;

}

}

int প্রধান ( ) {

cout << 'PI এর মান হল:' << গণিত :: পি.আই << endl ;

cout << '5 এর বর্গ হল:' << গণিত :: বর্গক্ষেত্র ( 5 ) << endl ;

ফিরে 0 ;

}

উপরের কোডটি ব্যবহার করে গণিত নামস্থান অ্যাক্সেস করতে 'PI' ধ্রুবক এবং 'বর্গক্ষেত্র' ব্যবহার করে ফাংশন সুযোগ রেজোলিউশন অপারেটর '::' . এটি তারপর কনসোলে মানগুলি প্রিন্ট করে।



আউটপুট

2: প্রোগ্রামে গ্লোবাল ভেরিয়েবল অ্যাক্সেস করুন

যখন স্থানীয় এবং বৈশ্বিক ভেরিয়েবলের একই নাম প্রোগ্রামে উপস্থিত থাকে, তখন স্থানীয় ভেরিয়েবল গ্লোবালটিকে লুকিয়ে রাখতে পারে। এই ধরনের পরিস্থিতিতে, আপনি ব্যবহার করতে পারেন সুযোগ রেজোলিউশন অপারেটর (::) গ্লোবাল ভেরিয়েবল অ্যাক্সেস করার জন্য। এই অপারেটর আমাদের সুস্পষ্টভাবে এর সুযোগের উপর ভিত্তি করে গ্লোবাল ভেরিয়েবলের উল্লেখ করতে দেয়।

উদাহরণ স্বরূপ, নিচের কোডে আমরা গ্লোবাল ভেরিয়েবল উল্লেখ করেছি 'ক 'এর মাধ্যমে সুযোগ রেজোলিউশন অপারেটর(::) , একটি ফাংশনের ভিতর থেকে যেখানে একই নামের একটি স্থানীয় ভেরিয়েবল সংজ্ঞায়িত করা হয়েছে:

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

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

int = পনের ;

int প্রধান ( )

{

int = 35 ;

cout << 'গ্লোবাল ভেরিয়েবল a এর মান হল ' << :: << endl ;

cout << 'স্থানীয় চলক a এর মান হল ' << << endl ;

ফিরে 0 ;

}

উপরের কোডে, প্রধান ফাংশনের বাইরে একটি বর্তমান ভেরিয়েবল হল বিশ্ব পরিবর্তনশীল এবং প্রধান ফাংশনের মধ্যে একটি ভেরিয়েবল হল স্থানীয় পরিবর্তনশীল গ্লোবাল ভেরিয়েবলের একই নামের সাথে। cout স্টেটমেন্টে, আমরা গ্লোবাল ভেরিয়েবল প্রিন্ট করার জন্য স্কোপ রেজোলিউশন অপারেটর ব্যবহার করেছি .

আউটপুট

3: ক্লাসের বাইরে একটি ফাংশন সংজ্ঞায়িত করুন

C++ এ, আপনি ক্লাস সংজ্ঞার বাইরে একটি ক্লাস ফাংশন সংজ্ঞায়িত করতে পারেন এবং এটি ব্যবহার করে করা যেতে পারে সুযোগ রেজোলিউশন অপারেটর (::) ফাংশনটি কোন শ্রেণীর অন্তর্গত তা নির্দিষ্ট করতে। এটি প্রয়োজনীয় কারণ ফাংশনটি ক্লাস সুযোগের বাইরে সংজ্ঞায়িত করা হয়েছে।

এখানে একটি উদাহরণ কোড যা এই ব্যবহার প্রদর্শন করে সুযোগ রেজোলিউশন অপারেটর :

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

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



ক্লাস myClass {

পাবলিক :

অকার্যকর myfunction ( ) ;

} ;

অকার্যকর আমার ক্লাস :: myfunction ( ) {

cout << 'myfunction() বলা হয়েছে!' ;

}

int প্রধান ( )

{

myClass classObj ;

classObj myfunction ( ) ;

ফিরে 0 ;

}

উপরের কোডে সদস্য ফাংশন myfunction() ব্যবহার করে ক্লাসের বাইরে সংজ্ঞায়িত করা হয় সুযোগ রেজোলিউশন অপারেটর :: যে নির্দিষ্ট করতে myfunction() মাইক্লাস ক্লাসের অন্তর্গত।

আউটপুট

4: ক্লাসের স্ট্যাটিক সদস্যদের অ্যাক্সেস করুন

C++ এ, যখন একটি স্ট্যাটিক সদস্য থাকে এবং একই নামের একটি স্থানীয় ভেরিয়েবল ক্লাসের মধ্যে উপস্থিত থাকে, সুযোগ রেজোলিউশন অপারেটর (::) একটি ক্লাসের স্ট্যাটিক সদস্যদের অ্যাক্সেস করতে ব্যবহার করা যেতে পারে। এটি প্রোগ্রামটিকে স্থানীয় পরিবর্তনশীল এবং স্ট্যাটিক সদস্যের মধ্যে পার্থক্য করতে দেয়।

এখানে একটি উদাহরণ কোড যা ব্যবহার সম্পর্কিত সুযোগ রেজোলিউশন অপারেটর এই ধরনের একটি ক্ষেত্রে:

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

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

ক্লাস myClass {

পাবলিক :

স্থির int myStatVar ;

} ;

int আমার ক্লাস :: myStatVar = 5 ;

int প্রধান ( ) {

int myStatVar = 10 ;

cout << 'স্থানীয় পরিবর্তনশীল myStatVar:' << myStatVar << endl ;

cout << 'ক্লাস ভেরিয়েবল myStatVar:' << আমার ক্লাস :: myStatVar << endl ;

ফিরে 0 ;

}

উপরের প্রোগ্রামটি প্রথমে একটি ক্লাস সংজ্ঞায়িত করে আমার ক্লাস একটি স্ট্যাটিক সদস্য পরিবর্তনশীল সঙ্গে myStatVar . এটি তারপর প্রোগ্রামের প্রধান ফাংশনের ভিতরে একই নামের একটি স্থানীয় ভেরিয়েবল সংজ্ঞায়িত করে। ক্লাস ভেরিয়েবল অ্যাক্সেস করতে, সুযোগ রেজোলিউশন অপারেটর (::) ক্লাস নামের সাথে ব্যবহার করা হয় আমার ক্লাস . প্রোগ্রামটি কনসোলে উভয় ভেরিয়েবলের মান আউটপুট করে।

আউটপুট

5: একাধিক উত্তরাধিকারের সাথে ব্যবহার করুন

দ্য সুযোগ রেজোলিউশন অপারেটর (::) একই নামের সদস্য ভেরিয়েবল বা ফাংশন আছে এমন একাধিক প্যারেন্ট ক্লাস থেকে একটি C++ ক্লাস নেওয়া হলে সদস্যের কোন সংস্করণটি ব্যবহার করতে হবে তা নির্দেশ করতেও এটি ব্যবহার করা হয়। আমরা ব্যবহার করে একই সদস্যের বিভিন্ন সংস্করণের মধ্যে পার্থক্য করতে পারি সুযোগ রেজোলিউশন অপারেটর তারপরে অভিভাবক শ্রেণীর নাম এবং সদস্যের নাম।

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

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

ক্লাস অভিভাবক1 {

পাবলিক :

অকার্যকর ছাপা ( ) {

cout << 'এটি ক্লাস Parent1 প্রিন্ট ফাংশন।' << endl ;

}

} ;

ক্লাস প্যারেন্ট 2 {
পাবলিক :
অকার্যকর ছাপা ( ) {
cout << 'এটি ক্লাস Parent2 প্রিন্ট ফাংশন।' << endl ;
}
} ;
ক্লাস myClass : সর্বজনীন অভিভাবক1 , সর্বজনীন অভিভাবক2 {
ব্যক্তিগত :
int একের উপর ;

পাবলিক :
আমার ক্লাস ( int n ) {
একের উপর = n ;
}
অকার্যকর ছাপা ( ) {
অভিভাবক ১ :: ছাপা ( ) ; // Parent1 এর প্রিন্ট ফাংশন কল করুন
অভিভাবক2 :: ছাপা ( ) ; // Parent2 এর প্রিন্ট ফাংশন কল করুন
cout << 'সংখ্যার মান হল:' << একের উপর << endl ; // সংখ্যার মান প্রিন্ট করুন
}
} ;
int প্রধান ( ) {
myClass অবজেক্ট ( 42 ) ; // মাইক্লাসের একটি অবজেক্ট তৈরি করুন যার সংখ্যা 42-এ প্রাথমিক করা হয়েছে
বস্তু ছাপা ( ) ; // অবজেক্টের print() ফাংশন কল করুন
ফিরে 0 ;
}

উপরের প্রোগ্রামটির ব্যবহার প্রদর্শন করে সুযোগ রেজোলিউশন অপারেটর (::) এর মুদ্রণ ফাংশনগুলির মধ্যে পার্থক্য করতে অভিভাবক ১ এবং অভিভাবক2 যখন উভয় শ্রেণীর দ্বারা উত্তরাধিকারসূত্রে প্রাপ্ত হয় আমার ক্লাস. সঙ্গে ফাংশন কল করে অভিভাবক শ্রেণী ফাংশনের নামের আগে নাম, আমরা ফাংশনের কোন সংস্করণটি ব্যবহার করতে হবে তা নির্দিষ্ট করতে পারি।

আউটপুট

শেষের সারি

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