একটি ক্লাসের একটি বন্ধু ফাংশন সেই ক্লাসের সুযোগের বাইরে সংজ্ঞায়িত করা হয় তবে এটির ক্লাসের সমস্ত ব্যক্তিগত এবং সুরক্ষিত সদস্যদের অ্যাক্সেস করার অধিকার রয়েছে৷ যদিও বন্ধু ফাংশনগুলির প্রোটোটাইপগুলি ক্লাসের সংজ্ঞায় উপস্থিত হয়, বন্ধুরা সদস্য ফাংশন নয়৷
একটি বন্ধু একটি ফাংশন, ফাংশন টেমপ্লেট, বা সদস্য ফাংশন, বা একটি ক্লাস বা ক্লাস টেমপ্লেট হতে পারে, এই ক্ষেত্রে পুরো ক্লাস এবং এর সমস্ত সদস্য বন্ধু৷
কোনও ফাংশনকে ক্লাসের ফ্রেন্ড হিসেবে ঘোষণা করতে, ক্লাস ডেফিনিশনে ফাংশন প্রোটোটাইপের আগে কীওয়ার্ড ফ্রেন্ড দিয়ে নিচে লিখুন −
<প্রি>ক্লাস বক্স {ডবল প্রস্থ;পাবলিক:ডবল দৈর্ঘ্য; বন্ধু অকার্যকর প্রিন্ট প্রস্থ (বক্স বক্স); void setWidth(ডবল প্রস্থ);};ক্লাস টু এর সকল সদস্য ফাংশনকে ক্লাস ওয়ানের বন্ধু হিসাবে ঘোষণা করতে, ক্লাস ওয়ানের সংজ্ঞায় নিম্নলিখিত ঘোষণাটি রাখুন −
বন্ধু ক্লাস ক্লাসটু;
উদাহরণ
#includenamespace ব্যবহার করে std;class Box { দ্বিগুণ প্রস্থ; সর্বজনীন:বন্ধু অকার্যকর প্রিন্ট প্রস্থ (বক্স বক্স); void setWidth( double width);};// Member function definitionvoid Box::setWidth( double wid ) { width =wid;}// Note:printWidth() কোন class.void printWidth( বক্স বক্স) এর সদস্য ফাংশন নয় { /* যেহেতু printWidth() বক্সের বন্ধু, এটি সরাসরি এই শ্রেণীর যেকোনো সদস্যকে অ্যাক্সেস করতে পারে */ cout <<"বক্সের প্রস্থ :" < আউটপুট
এটি আউটপুট দেবে −
বাক্সের প্রস্থ:10যদিও ফাংশনটি ক্লাসের সদস্য ছিল না, এটি সরাসরি সেই ক্লাসের সদস্য ভেরিয়েবলগুলিতে অ্যাক্সেস করতে পারে। এটি নির্দিষ্ট পরিস্থিতিতে খুব দরকারী হতে পারে।