i changed it to
Code:
static char *date::mnames[]= { "Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov", "Dec" };
now it gives the err
Code:
error C2720: 'date::mnames' : 'static ' storage-class specifier illegal on members
i tried removing the static keyword and it gives a linker error
Code:
1>employee.obj : error LNK2019: unresolved external symbol "public: __thiscall date::date(class date &)" (??0date@@QAE@AAV0@@Z) referenced in function "public: class date __thiscall Employee::getHireDate(void)" (?getHireDate@Employee@@QAE?AVdate@@XZ)
Employee is another class I have
employee.h
Code:
#pragma once
#include <string>
#include "date.h"
using namespace std;
class Employee
{
private:
int division;
int dept;
string name;
const int empNo;
date hireDate;
date promotionDate;
string classification;
float salary, currentHours;
static int size;
public:
//a default constructor
Employee(void);
// a constructor to initialize new-ly created structs.
//todo: date class
Employee(int,int,string,date,date,string,float,float);
//destructor
~Employee(void);
int getSize();
int getDivision();
int getDept();
string getName();
date getHireDate();
date getPromotionDate();
string getClassification();
bool getExempt();
float getSalary();
float getCurrentHours();
const int getEmpNo();
void setDivision(int d);
void setDept(int de);
void setName(string n);
void setHireDate(date hd);
void setPromotionDate(date pd);
void setClassification(string c);
void setExempt(bool e);
void setSalary(float s);
void setCurrentHours(float ch);
virtual void printEmployee();
virtual float pay();
};
employee.cpp
Code:
#include "employee.h"
#include <iostream>
//keep track of how many employees we have
int Employee::size=0;
Employee::Employee(void): empNo(size++)
{
currentHours=0.0;
}
Employee::Employee(int div, int dep, string n, date hire, date prom, string cls, float salry, float curHr=0):empNo(size++)
{
division=div;
dept=dep;
name=n;
hireDate=hire;
promotionDate=prom;
classification=cls;
salary=salry;
currentHours=curHr;
}
int Employee::getSize()
{
return size;
}
int Employee::getDivision()
{
return division;
}
int Employee::getDept()
{
return dept;
}
string Employee::getName()
{
return name;
}
date Employee::getHireDate()
{
return hireDate;
}
date Employee::getPromotionDate()
{
return promotionDate;
}
string Employee::getClassification()
{
return classification;
}
float Employee::getSalary()
{
return salary;
}
float Employee::getCurrentHours()
{
return currentHours;
}
const int Employee::getEmpNo()
{
return empNo;
}
void Employee::setDivision(int d)
{
division=d;
}
void Employee::setDept(int de)
{
dept=de;
}
void Employee::setName(string n)
{
name=n;
}
void Employee::setHireDate(date hd)
{
hireDate=hd;
}
void Employee::setPromotionDate(date pd)
{
promotionDate=pd;
}
void Employee::setClassification(string c)
{
classification=c;
}
void Employee::setSalary(float s)
{
salary=s;
}
void Employee::setCurrentHours(float ch)
{
currentHours=ch;
}
void Employee::printEmployee()
{
cout<<"Name: " << name.c_str()
<< " Div: " << division
<< ""
<< ""
<< ""
<< ""
<< ""
<< " Current hours: ";
}
float Employee::pay()
{
//return getSalary(); geoff
return (float) salary; //teacher
}