Friend Function হল একটি বিশেষ ধরনের ফাংশন যা C++ এ ব্যবহৃত হয়। এটি ক্লাসের বাইরে থেকেও ক্লাসের private এবং protected ডাটা মেম্বার অ্যাক্সেস করতে পারে।
class MyClass {
private:
int private_data;
public:
MyClass() {
private_data = 0;
}
// Friend function declaration
friend void displayData(MyClass obj);
};
// Friend function definition
void displayData(MyClass obj) {
// Can access private members
cout << "Private data = " << obj.private_data;
}
সুবিধাসমূহ:
- ফাংশনালিটি (Functionality):
- একাধিক ক্লাসের private ডাটা অ্যাক্সেস করতে পারে
- দুই ক্লাসের মধ্যে ডাটা শেয়ার করা সহজ হয়
- ক্লাসের বাইরে থেকে private ডাটা নিয়ে কাজ করা যায়
- ফ্লেক্সিবিলিটি (Flexibility):
- একাধিক ক্লাসের ডাটা একসাথে প্রসেস করা যায়
- ক্লাসের ইনক্যাপসুলেশন ভঙ্গ না করে ডাটা অ্যাক্সেস করা যায়
- কোড অপ্টিমাইজেশন:
- পারফরম্যান্স বাড়ানো যায়
- কোড পুনর্ব্যবহার করা সহজ হয়
অসুবিধাসমূহ:
- সিকিউরিটি রিস্ক:
- private ডাটা অ্যাক্সেস করতে পারে, যা সিকিউরিটি ঝুঁকি তৈরি করে
- ডাটা হাইডিং নীতি লঙ্ঘন করে
- মেইনটেনেবিলিটি:
- কোড মেইনটেইন করা কঠিন হয়
- ডিবাগিং জটিল হয়ে যায়
- কোড কমপ্লেক্সিটি:
- প্রোগ্রামের জটিলতা বাড়ে
- কোড বোঝা কঠিন হয়ে যায়
উদাহরণ:
class Box {
private:
int length;
public:
Box() {
length = 0;
}
friend void printLength(Box b);
};
void printLength(Box b) {
// Can access private member length
cout << "Length = " << b.length << endl;
}
int main() {
Box box;
printLength(box); // Will print: Length = 0
return 0;
}
Related Question
View Allকম্পিউটারের মেমরি (Memory) ব্যবস্থায় RAM (Random Access Memory) এবং ROM (Read Only Memory) উভয়ই গুরুত্বপূর্ণ ভূমিকা পালন করে। এদের মৌলিক প্রকৃতি ও কার্যকারিতার মধ্যে বেশ কিছু সুস্পষ্ট পার্থক্য বিদ্যমান, যা নিচে একটি সারণীর মাধ্যমে ব্যাখ্যা করা হলো:
| বৈশিষ্ট্য (Feature) | RAM (র্যাম) | ROM (রম) |
|---|---|---|
| পুরো নাম (Full Name) | Random Access Memory | Read Only Memory |
| প্রকৃতি (Nature) | এটি একটি Volatile (উদ্বায়ী) মেমরি। | এটি একটি Non-volatile (অনুদ্বায়ী) মেমরি। |
| ডেটা সংরক্ষণ (Data Storage) | অস্থায়ীভাবে ডেটা সংরক্ষণ করে। কম্পিউটার চালু থাকাকালীন ডেটা ও প্রোগ্রাম লোড করে। | স্থায়ীভাবে ডেটা সংরক্ষণ করে। গুরুত্বপূর্ণ সিস্টেম ফাইল ও ফার্মওয়্যার (Firmware) থাকে। |
| ডেটা পরিবর্তন (Data Modification) | ডেটা পড়া (Read) এবং লেখা (Write) উভয়ই করা যায়, অর্থাৎ ডেটা পরিবর্তনযোগ্য। | সাধারণত শুধু ডেটা পড়া যায়; ডেটা লেখা বা পরিবর্তন করা কঠিন বা বিশেষ পদ্ধতির প্রয়োজন। |
| গতি (Speed) | ROM-এর চেয়ে অনেক দ্রুত কাজ করে। | RAM-এর চেয়ে ধীর গতিসম্পন্ন। |
| বিদ্যুৎ চলে গেলে (Power Off) | বিদ্যুৎ সরবরাহ বন্ধ হলে এতে সংরক্ষিত সমস্ত ডেটা হারিয়ে যায়। | বিদ্যুৎ সরবরাহ বন্ধ হলেও এতে সংরক্ষিত ডেটা অক্ষত থাকে। |
| ব্যবহার (Usage) | অপারেটিং সিস্টেম (Operating System), অ্যাপ্লিকেশন প্রোগ্রাম (Application Program) এবং বর্তমান কাজের ডেটা লোড করার জন্য ব্যবহৃত হয়। | কম্পিউটার চালু করার জন্য প্রয়োজনীয় বুটস্ট্র্যাপ নির্দেশাবলী (Bootstrap Instructions) এবং বায়োস (BIOS) বা ইউইএফআই (UEFI) ফার্মওয়্যার সংরক্ষণ করে। |
| ক্ষমতা (Capacity) | সাধারণত GB (গিগাবাইট)-এর এককে পরিমাপ করা হয় (যেমন: 4GB, 8GB, 16GB)। | সাধারণত MB (মেগাবাইট)-এর এককে পরিমাপ করা হয় (যেমন: 4MB, 8MB, 16MB)। |
| উদাহরণ (Examples) | DRAM (Dynamic RAM), SRAM (Static RAM)। | PROM (Programmable ROM), EPROM (Erasable PROM), EEPROM (Electrically Erasable PROM)। |
সংক্ষেপে, RAM একটি দ্রুত, অস্থায়ী কার্যকারী মেমরি যা কম্পিউটারকে বর্তমান কাজগুলো সম্পাদন করতে সাহায্য করে, অন্যদিকে ROM একটি ধীর, স্থায়ী মেমরি যা কম্পিউটার চালু করার জন্য অপরিহার্য মৌলিক নির্দেশাবলী সংরক্ষণ করে।
১ ক্লিকে প্রশ্ন, শীট, সাজেশন ও
অনলাইন পরীক্ষা তৈরির সফটওয়্যার!
শুধু প্রশ্ন সিলেক্ট করুন — প্রশ্নপত্র অটোমেটিক তৈরি!