#ifdef SALE_ITEMX
#define SALE_ITEMX
class Sale_item
{
public:
std::string isbn;
int total;
double trans;
bool same_isbn(Sale_item &rhs) const
{
return this->isbn==rhs.isbn;
}
};
#endif
这个是用户自定义头文件
#include <iostream>
#include <string>
#include "Sale_item.h"
using namespace std;
int main ()
{
cout<<"请输入Sales_item对象:"<<endl;
Sale_item item1,item2;
cin>>item1.isbn>>item1.total>>item1.trans>>item2.isbn>>item2.total>>item2.trans;
if (item1.same_isbn(item2))
{
item1.total+=item2.total;
item1.trans+=item2.trans;
cout<<"结果为:\n"<<item1.isbn<<' '<<item1.total<<' '<<item1.trans<<endl;
return 0;
}
else
{
cout<<"结果为:\n"<<item1.isbn<<' '<<item1.total<<' '<<item1.trans<<'\n'<<item2.isbn<<' '<<item2.total<<' '<<item2.trans<<endl;
return 0;
}
}
这个是调用他的源文件
编译是出现error C2065: 'Sale_item' : undeclared identifier的错误信息
而如果去掉头文件保护符,将头文件改为
class Sale_item
{
public:
std::string isbn;
int total;
double trans;
bool same_isbn(Sale_item &rhs) const
{
return this->isbn==rhs.isbn;
}
};
就可以正常编译运行,请问这是什么原因?谢谢!