// your code goes here
#include <iostream>
using namespace std;
class Employee {
private:
int empID;
double salary;
protected:
// Protected getter allows Manager (child) to access salary indirectly
double getSalary() const {
return salary;
}
public:
Employee(int id, double s) {
empID = id;
salary = s;
}
void display() {
cout << "Employee id: " << empID << " Salary: " << salary << " Taka\n";
}
int getID() const { return empID; }
};
class Manager : public Employee {
public:
Manager(int id, double sal) : Employee(id, sal) {}
void displaymanager() {
cout << "Manager id: " << getID()
<< " Salary: " << getSalary() << " Taka\n";
}
};
class AssistantManager : public Manager {
public:
AssistantManager(int id, double s) : Manager(id, s) {}
void displayassisman() {
// ❌ Cannot access salary directly or via getSalary()
// Because getSalary() is protected in Employee, and Manager didn’t expose it publicly
cout << "Assistant Manager id: " << getID()
<< " Salary info unavailable (no direct access)\n";
}
};
int main() {
Employee em(32564, 123435.8);
em.display();
Manager m(6674, 324.5);
m.displaymanager();
AssistantManager am(2345, 897.89);
am.displayassisman();
return 0;
}
Ly8geW91ciBjb2RlIGdvZXMgaGVyZQojaW5jbHVkZSA8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBFbXBsb3llZSB7CnByaXZhdGU6CiAgICBpbnQgZW1wSUQ7CiAgICBkb3VibGUgc2FsYXJ5OwoKcHJvdGVjdGVkOgogICAgLy8gUHJvdGVjdGVkIGdldHRlciBhbGxvd3MgTWFuYWdlciAoY2hpbGQpIHRvIGFjY2VzcyBzYWxhcnkgaW5kaXJlY3RseQogICAgZG91YmxlIGdldFNhbGFyeSgpIGNvbnN0IHsKICAgICAgICByZXR1cm4gc2FsYXJ5OwogICAgfQoKcHVibGljOgogICAgRW1wbG95ZWUoaW50IGlkLCBkb3VibGUgcykgewogICAgICAgIGVtcElEID0gaWQ7CiAgICAgICAgc2FsYXJ5ID0gczsKICAgIH0KCiAgICB2b2lkIGRpc3BsYXkoKSB7CiAgICAgICAgY291dCA8PCAiRW1wbG95ZWUgaWQ6ICIgPDwgZW1wSUQgPDwgIiBTYWxhcnk6ICIgPDwgc2FsYXJ5IDw8ICIgVGFrYVxuIjsKICAgIH0KCiAgICBpbnQgZ2V0SUQoKSBjb25zdCB7IHJldHVybiBlbXBJRDsgfQp9OwoKY2xhc3MgTWFuYWdlciA6IHB1YmxpYyBFbXBsb3llZSB7CnB1YmxpYzoKICAgIE1hbmFnZXIoaW50IGlkLCBkb3VibGUgc2FsKSA6IEVtcGxveWVlKGlkLCBzYWwpIHt9CgogICAgdm9pZCBkaXNwbGF5bWFuYWdlcigpIHsKICAgICAgICBjb3V0IDw8ICJNYW5hZ2VyIGlkOiAiIDw8IGdldElEKCkgCiAgICAgICAgICAgICA8PCAiIFNhbGFyeTogIiA8PCBnZXRTYWxhcnkoKSA8PCAiIFRha2FcbiI7CiAgICB9Cn07CgpjbGFzcyBBc3Npc3RhbnRNYW5hZ2VyIDogcHVibGljIE1hbmFnZXIgewpwdWJsaWM6CiAgICBBc3Npc3RhbnRNYW5hZ2VyKGludCBpZCwgZG91YmxlIHMpIDogTWFuYWdlcihpZCwgcykge30KCiAgICB2b2lkIGRpc3BsYXlhc3Npc21hbigpIHsKICAgICAgICAvLyDinYwgQ2Fubm90IGFjY2VzcyBzYWxhcnkgZGlyZWN0bHkgb3IgdmlhIGdldFNhbGFyeSgpCiAgICAgICAgLy8gQmVjYXVzZSBnZXRTYWxhcnkoKSBpcyBwcm90ZWN0ZWQgaW4gRW1wbG95ZWUsIGFuZCBNYW5hZ2VyIGRpZG7igJl0IGV4cG9zZSBpdCBwdWJsaWNseQogICAgICAgIGNvdXQgPDwgIkFzc2lzdGFudCBNYW5hZ2VyIGlkOiAiIDw8IGdldElEKCkgCiAgICAgICAgICAgICA8PCAiIFNhbGFyeSBpbmZvIHVuYXZhaWxhYmxlIChubyBkaXJlY3QgYWNjZXNzKVxuIjsKICAgIH0KfTsKCmludCBtYWluKCkgewogICAgRW1wbG95ZWUgZW0oMzI1NjQsIDEyMzQzNS44KTsKICAgIGVtLmRpc3BsYXkoKTsKCiAgICBNYW5hZ2VyIG0oNjY3NCwgMzI0LjUpOwogICAgbS5kaXNwbGF5bWFuYWdlcigpOwoKICAgIEFzc2lzdGFudE1hbmFnZXIgYW0oMjM0NSwgODk3Ljg5KTsKICAgIGFtLmRpc3BsYXlhc3Npc21hbigpOwoKICAgIHJldHVybiAwOwp9Cg==