#ifndef EMPLOYEE_H
#define EMPLOYEE_H
#include <iostream>
#include <string>
using namespace std;
namespace Chorke {
namespace Academia {
namespace Core {
class Employee;
}
}
}
namespace Core = Chorke::Academia::Core;
class Core::Employee {
public:
Employee();
Employee(string name, int age);
virtual ~Employee();
string greeting();
const string& Name() const;
const Employee& Name(const string& name);
const int& Age() const;
const Employee& Age(const int& age);
protected:
private:
string m_name;
int m_age;
};
#endif // EMPLOYEE_H
#ifndef DOCTOR_H
#define DOCTOR_H
#include <employee.h>
#include <iostream>
#include <string>
using namespace std;
namespace Chorke {
namespace Academia {
namespace Core {
class Doctor;
}
}
}
namespace Core = Chorke::Academia::Core;
class Core::Doctor {
public:
Doctor(const Employee& emp);
virtual ~Doctor();
string greeting();
protected:
private:
Employee m_emp;
};
#endif // DOCTOR_H
#include "Employee.h"
Core::Employee::Employee() {
m_name = "";
m_age = 0;
}
Core::Employee::Employee(string name, int age) {
m_name = name;
m_age = age;
}
const string& Core::Employee::Name() const {
return m_name;
}
const Core::Employee& Core::Employee::Name(const string& name) {
m_name = name;
return *this;
}
const int& Core::Employee::Age() const {
return m_age;
}
const Core::Employee& Core::Employee::Age(const int& age) {
m_age = age;
return *this;
}
string Core::Employee::greeting() {
string hello = "Hello, Mr. ";
return hello + m_name;
}
Core::Employee::~Employee() {
//delete &m_name;
//delete &m_age;
}
#include "Doctor.h"
Core::Doctor::Doctor(const Employee& emp) {
m_emp = emp;
}
string Core::Doctor::greeting() {
string hello = "Hello, Dr. ";
return hello + m_emp.Name();
}
Core::Doctor::~Doctor() {
//delete &m_emp;
}
#include <Employee.h>
#include <Doctor.h>
#include <iostream>
#include <string>
using namespace std;
using namespace Chorke::Academia::Core;
int main() {
Employee emp("Academian", 30);
Doctor doc(emp);
cout << "Hello, Academian!" << endl;
cout << "" + emp.greeting() << endl;
cout << "" + doc.greeting() << endl;
return 0;
}