Need Help ?

Home / Expert Answers / Computer Science / c-main-cpp-is-demonstrating-inheritance-as-well-as-use-of-constructor-and-destructor-this-keeps-givi-q-231

(Solved): C++ ; main.cpp is demonstrating inheritance as well as use of constructor and destructor. This keeps giving me a link error please fix it and complete the program. main.cpp #include #include #include ...



C++ ; main.cpp is demonstrating inheritance as well as use of constructor and destructor. This keeps giving me a link error please fix it and complete the program. main.cpp #include #include #include "BasePlusCommissionEmployee.h" // class definition using namespace std; int main() { // instantiate BasePlusCommissionEmployee object BasePlusCommissionEmployee employee( "Bob", "Lewis", "333-33-3333", 5000, .04, 300 ); // set floating-point output formatting cout << fixed << setprecision( 2 ); // get commission employee data cout << "Employee information obtained by get functions: \n" << "\nFirst name is " << employee.getFirstName() << "\nLast name is " << employee.getLastName() << "\nSocial security number is " << employee.getSocialSecurityNumber() << "\nGross sales is " << employee.getGrossSales() << "\nCommission rate is " << employee.getCommissionRate() << "\nBase salary is " << employee.getBaseSalary() << endl;*/ employee.setBaseSalary( 1000 ); // set base salary cout << "\nUpdated employee information output by print function: \n" << endl; employee.print(); // display the new employee information // display the employee's earnings cout << "\n\nEmployee's earnings: $" << employee.earnings() << endl; } // end main // TODO - Add an object of CommissionEmployee // Run the print method of CommissionEmployee ------------------------------------------------------------------ BasePlusCommissionEmployee.h #ifndef BASEPLUS_H #define BASEPLUS_H #include // C++ standard string class #include "CommissionEmployee.h" // CommissionEmployee class declaration class BasePlusCommissionEmployee : public CommissionEmployee { public: BasePlusCommissionEmployee( const std::string &, const std::string &, const std::string &, double = 0.0, double = 0.0, double = 0.0 ); void setBaseSalary( double ); // set base salary double getBaseSalary() const; // return base salary double earnings() const; // calculate earnings void print() const; // print BasePlusCommissionEmployee object private: double baseSalary; // base salary }; // end class BasePlusCommissionEmployee #endif ---------------------------------------------------------------- BasePlusCommissionEmployee.cpp // Fig. 11.11: BasePlusCommissionEmployee.cpp // Class BasePlusCommissionEmployee member-function definitions. #include #include #include "BasePlusCommissionEmployee.h" // class definition using namespace std; // constructor BasePlusCommissionEmployee::BasePlusCommissionEmployee( const string &first, const string &last, const string &ssn, double sales, double rate, double salary ) // explicitly call base-class constructor : CommissionEmployee( first, last, ssn, sales, rate ) { setBaseSalary( salary ); // validate and store base salary } // end BasePlusCommissionEmployee constructor // set base salary void BasePlusCommissionEmployee::setBaseSalary( double salary ) { if ( salary >= 0.0 ) baseSalary = salary; else throw invalid_argument( "Salary must be >= 0.0" ); } // end function setBaseSalary // return base salary double BasePlusCommissionEmployee::getBaseSalary() const { return baseSalary; } // end function getBaseSalary // calculate earnings double BasePlusCommissionEmployee::earnings() const { // derived class cannot access the base class's private data return baseSalary + ( commissionRate * grossSales ); } // end function earnings // print BasePlusCommissionEmployee object void BasePlusCommissionEmployee::print() const { // derived class cannot access the base class's private data cout << "base-salaried commission employee: " << firstName << ' ' << lastName << "\nsocial security number: " << socialSecurityNumber << "\ngross sales: " << grossSales << "\ncommission rate: " << commissionRate << "\nbase salary: " << baseSalary; } // end function print double earnings() const; // calculate earnings void print() const; // print BasePlusCommissionEmployee object private: double baseSalary; // base salary }; // end class BasePlusCommissionEmployee #endif --------------------------------------------------------------- ComissionEmployee.h #ifndef COMMISSION_H #define COMMISSION_H #include // C++ standard string class class CommissionEmployee { public: CommissionEmployee( const std::string &, const std::string &, const std::string &, double = 0.0, double = 0.0 ); void setFirstName( const std::string & ); // set first name std::string getFirstName() const; // return first name void setLastName( const std::string & ); // set last name std::string getLastName() const; // return last name void setSocialSecurityNumber( const std::string & ); // set SSN std::string getSocialSecurityNumber() const; // return SSN void setGrossSales( double ); // set gross sales amount double getGrossSales() const; // return gross sales amount void setCommissionRate( double ); // set commission rate (percentage) double getCommissionRate() const; // return commission rate double earnings() const; // calculate earnings void print() const; // print CommissionEmployee object protected: std::string firstName; std::string lastName; std::string socialSecurityNumber; double grossSales; // gross weekly sales double commissionRate; // commission percentage }; // end class CommissionEmployee #endif



We have an Answer from Expert

View Expert Answer

Expert Answer


We have an Answer from Expert

Buy This Answer $4

Place Order