View Single Post
Old Feb 22nd, 2005, 12:27 AM   #4
nerdfiles
Newbie
 
Join Date: Nov 2004
Posts: 5
Rep Power: 0 nerdfiles is on a distinguished road
Welp, I'm back again. I've tried a few things and I've found myself even further back than when I started. If you could help, it'd be much appreciated. And yes, I'm thankful for the help I have received. Thanks, people.

Class:
#include <iostream>
using namespace std;

const unsigned LastNameSize = 10;

class Employee {
public:
	Employee E1( long id ); //Construct an employee file from I.D. alone.

	Employee E2( long id, char lastName, float payRate, int hours ); //Construct an
	//employee file from an I.D., last name, pay rate, and number of hours.

	long GetId(); //Get/return employee I.D. number.
	char GetLastName(); //Get/return employee's last name.
	float GetPayRate(); //Get/return employee's pay rate.
	int GetHours(); //Get/return employee's hours.

	float CalcGrossPay( int hours, float payRate); //Calculate and return gross pay.
	
	int SetHours( int hrs ); //Set the number of hours.
	float SetPayRate( float pRate ); //Set the pay rate.

	friend istream & operator >>( istream & input, Employee & E);
	friend ostream & operator <<( ostream & os, const Employee & E);

	~Employee() //Destructor.
	{
		cout << "Employee class destructor called.\n";
	}

private:
	long id; //ID number value.
	int hours; //Number of hours value.
	float payRate; //Pay rate value.
	char name; //Last name value.
};

inline unsigned Employee::GetPayRate() const
{
	return payRate;
}

inline void Employee::SetPayRate( float pRate )
{
	payRate = pRate;
}

inline unsigned int Employee::GetHours()
{
	return hours;
}

inline int Employee::SetHours( int hrs )
{
	hours = hrs;
}

Implementation:
#include "employee.h"

Employee::Employee()
{
	name[0] = '\0';
}

Employee::E2( long id, char lastName, float payRate, int hours )

istream & operator >>( istream & input, Employee E2 & E2)
{
	input >> E2.id >> E2.name >> E2.payRate >> E2.hours;
	return input;
}

ostream & operator <<( ostream & os, const Employee E2 & E2)
{
	os	<< " I.D.:      " << E2.id << '\n'
		<< " Last name: " << E2.name << '\n'
		<< " Pay rate:  " << E2.payRate << '\n'
		<< " Hours:     " << E2.hours << '\n';
	return os;
}

float Employee::CalcGrossPay( int hours, float payRate )
{
	return hours*payRate;
}

Error log:
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.cpp(12): error C2248: 'Employee::hours' : cannot access private member declared in class 'Employee'
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.cpp(4): error C2600: 'Employee::Employee' : cannot define a compiler-generated special member function (must be declared in the class first)
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.cpp(5): error C2109: subscript requires array or pointer type
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.cpp(10): error C2143: syntax error : missing ',' before '&'
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.cpp(10): error C2146: syntax error : missing ';' before identifier 'istream'
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.cpp(10): error C2761: 'Employee Employee::E2(long,char,float,int)' : member function redeclaration not allowed
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.cpp(12): error C2248: 'Employee::id' : cannot access private member declared in class 'Employee'
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.cpp(12): error C2248: 'Employee::name' : cannot access private member declared in class 'Employee'
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.cpp(12): error C2248: 'Employee::payRate' : cannot access private member declared in class 'Employee'
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.cpp(16): error C2143: syntax error : missing ',' before '&'
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.cpp(18): error C2248: 'Employee::id' : cannot access private member declared in class 'Employee'
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.cpp(19): error C2248: 'Employee::name' : cannot access private member declared in class 'Employee'
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.cpp(20): error C2248: 'Employee::payRate' : cannot access private member declared in class 'Employee'
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.cpp(21): error C2248: 'Employee::hours' : cannot access private member declared in class 'Employee'
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.h(39): error C2511: 'unsigned int Employee::GetPayRate(void) const' : overloaded member function not found in 'Employee'
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.h(39): error C2511: 'unsigned int Employee::GetPayRate(void) const' : overloaded member function not found in 'Employee'
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.h(44): error C2371: 'Employee::SetPayRate' : redefinition; different basic types
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.h(44): error C2371: 'Employee::SetPayRate' : redefinition; different basic types
        c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.h(21) : see declaration of 'Employee::SetPayRate'
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.h(44): error C2556: 'void Employee::SetPayRate(float)' : overloaded function differs only by return type from 'float Employee::SetPayRate(float)'
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.h(44): error C2556: 'void Employee::SetPayRate(float)' : overloaded function differs only by return type from 'float Employee::SetPayRate(float)'
        c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.h(21) : see declaration of 'Employee::SetPayRate'
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.h(49): error C2371: 'Employee::GetHours' : redefinition; different basic types
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.h(49): error C2371: 'Employee::GetHours' : redefinition; different basic types
        c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.h(16) : see declaration of 'Employee::GetHours'
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.h(49): error C2556: 'unsigned int Employee::GetHours(void)' : overloaded function differs only by return type from 'int Employee::GetHours(void)'
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.h(49): error C2556: 'unsigned int Employee::GetHours(void)' : overloaded function differs only by return type from 'int Employee::GetHours(void)'
        c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\Employee.h(16) : see declaration of 'Employee::GetHours'
c:\Documents and Settings\nerdfiles\My Documents\Projects\C++\PayrollApplication\main.cpp(5): error C2065: 'Display' : undeclared identifier
nerdfiles is offline   Reply With Quote