나는 세 개의 파일 (미리 컴파일 된 헤더 제외)이있는 간단한 프로그램을 가지고 있습니다.미리 컴파일 된 헤더 오류
1> D : \ 연습 \ 연산자 오버로딩 \ oopinheritance \ oopinheritance \ commisionemp.h ( 나는 내가 이해하지 못하는 것 같습니다 아직이 두 가지 오류를주고있다 .CPP 파일의 미리 컴파일 된 헤더를 포함했다 4) : 경고 C4627 : '#include': 미리 컴파일 된 헤더를 사용할 때 건너 뜁니다. 1 'StdAfx.h'에 지시문을 추가하거나 미리 컴파일 된 헤더를 다시 작성하십시오. 1> d : \ practice \ operatoroverloading \ oopinheritance \ oopinheritance \ commisionemp.h (35) : 치명적인 오류 C1010 : 미리 컴파일 된 헤더를 찾는 동안 예기치 않은 파일 끝. 원본에 '#include "StdAfx.h"'를 추가하는 것을 잊었습니까? ========== 모두 다시 빌드 :
OOPInheritance.cpp
// OOPInheritance.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include "CommisionEmp.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
CommissionEmp employee("Dede","Kikadi","777-77-7777",5000,0.08);
cout<<fixed<<setprecision(2);
cout<<"Employee information obtained by get functions:\n"
<<"\n First name is" <<employee.getFirstName()
<<"\n Last name is "<<employee.getLastName()
<<"\nSocial security number is"
<<employee.getSocialSecurityNumber()
<<"\nGross sales is " <<employee.getGrossSales()
<<"\nCommission rate is " <<employee.getCommissionRate()<<endl;
employee.setGrossSales(8000);
employee.setCommissionRate(.1);
cout<<"\n Updated employee infromation output by print function : \n"<<endl;
employee.print();
cout<<"\n Employee's earning : ZAR"<<employee.earnings()<<endl;
return 0;
}
CommisionEmp.h:
#ifndef COMMISSION_H
#define COMMISSION_H
#include <string>
using namespace std;
class CommissionEmp{
public:
CommissionEmp(const string &, const string &, const string &, double=0.0, double =0.0);
void setFirstName(const string &);
string getFirstName() const;
void setLastName(const string &);
string getLastName() const;
void setSocialSecurityNumber(const string &);
string getSocialSecurityNumber() const;
void setGrossSales(double);
double getGrossSales() const;
void setCommissionRate(double);
double getCommissionRate() const;
double earnings()const;
void print() const;
private:
string firstName;
string lastName;
string socialSecurityNumber;
double grossSales;
double commissionRate;
};
#endif
CommissionEmp.cpp:
#include "stdafx.h"
#include <iostream>
#include "CommisionEmp.h"
using namespace std;
CommissionEmp::CommissionEmp(const string &first, const string &last, const string &ssn, double sales, double rate) :
firstName(first), lastName (last), socialSecurityNumber(ssn)
{
setGrossSales(sales);
setCommissionRate(rate);
}
void CommissionEmp::setFirstName(const string &first)
{
firstName=first;
}
string CommissionEmp::getFirstName()const {return firstName;}
void CommissionEmp::setLastName (const string &last)
{
lastName=last;
}
string CommissionEmp::getLastName()const {return lastName;}
void CommissionEmp::setSocialSecurityNumber (const string &ssn)
{
socialSecurityNumber=ssn;
}
string CommissionEmp::getSocialSecurityNumber()const {return socialSecurityNumber;}
void CommissionEmp::setGrossSales (double sales)
{
if(sales >= 0.0)
grossSales=sales;
else throw invalid_argument("Gross sales must be >=0.0");
}
double CommissionEmp::getGrossSales()const {return grossSales;}
void CommissionEmp::setCommissionRate (double rate)
{
if(rate>0.0 && rate <1.0)
commissionRate=rate;
else throw invalid_argument("Commission rate must be > 0.0 and < 1.0");
}
double CommissionEmp::getCommissionRate()const {return commissionRate;}
double CommissionEmp::earnings() const{
return commissionRate*grossSales;
}
void CommissionEmp::print() const{
cout<<"commission empoyee: " <<firstName <<' ' <<lastName
<<"\n social security number : "<<socialSecurityNumber
<<"\ngross sales: "<< grossSales
<<"\ncommission rate: "<<commissionRate;
}
오류 메시지가 commisionemp.h에 대해 이야기하지만 그 파일 중 아무 것도 그 파일을 호출하지 않습니다. –
@MatsPetersson Peterson, 죄송합니다. 파일 이름을 입력했습니다. – panto111088