home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
cset21v1.zip
/
IBMCPP
/
SAMPLES
/
BROWSER
/
PAYCLASS.H
next >
Wrap
C/C++ Source or Header
|
1993-04-30
|
4KB
|
150 lines
/* @(#)26 1.3 src/samples/payclass.h, samples, brs110, 930429 92/11/20 22:04:16 */
/******************************************************
*** payclass.h -- class definitions for payroll.cpp ***
******************************************************/
// Abstract base class definition
class employee // Declare a virtual base
// class named employee.
{
protected:
char * name;
int employee_id;
public:
// Constructors for class employee.
employee(){/* required for multiple inheritance
of virtual base class.*/;};
employee(char * n, int id);
// Declare pure virtual functions:
virtual void print() = 0;
virtual void position() = 0;
virtual double pay() = 0;
}; // End of employee class definition.
// Derived class definitions.
// Declare a class named manager
// derived from the employee class.
class manager : virtual public employee
{
private:
double salary; // Declare a variable of type double
// private to this class.
public:
// Constructor for class manager.
manager(char *n, int id, double sal);
// pay function for class manager.
double pay();
// print function for class manager.
void print();
// position function for class manger.
void position() //Defined inline within
// the class definition.
{
cout << name << " is a manager.\n";
};
}; // End of manager class definition.
// Another derived class definition.
// Declare a class named regular_emp,
// derived from class employee.
class regular_emp : virtual public employee
{
private:
double wage, hours; // Declare two variables of type
// double, private to this class.
public:
// Constructor
regular_emp(char *n, int id, double wg, double hrs) ;
// pay function
double pay();
// print function for class regular_emp.
void print();
// position function for regular_emp.
void position() // Defined inline within
// the class definition.
{
cout << name << " is a regular employee.\n";
};
}; // End of regular_emp class definition.
// Another derived class definition
// Declare a class named sales_person,
// derived from class employee.
class sales_person : virtual public employee
{
private:
double commission;
int units;
public:
// Constructor
sales_person(char *n, int id,
double com, double nts);
// pay function
double pay();
// print function for class sales_person.
void print();
// position function for sales_person.
void position() //Defined inline within
// the class definition.
{
cout << name << " is a sales person.\n";
};
}; // End of sales_person class definition.
// A definition of a class with multiple inheritance
// (inherits functions from manager and sales_person).
// Declare a class named sales_mgr derived from
// the manager and sales_person classes.
class sales_mgr : public manager, public sales_person
{
private:
double salary, commission;
int units;
public:
// Constructors
sales_mgr(char *n, int id, double sal,
double comm, double nts);
// pay function
double pay();
// print function for class sales_mgr.
void print();
// position function for sales_mgr.
void position() // Defined inline within
// the class definition.
{
cout << name << " is a sales manager.\n";
};
}; // End of sales_mgr class definition.
/***** End of comp_class.h (class definitions) ****/