永发信息网

关于文件保护符的简单问题

答案:1  悬赏:20  手机版
解决时间 2021-08-16 19:51
  • 提问者网友:绫月
  • 2021-08-16 14:26

#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;
 }
};

就可以正常编译运行,请问这是什么原因?谢谢!

最佳答案
  • 五星知识达人网友:神也偏爱
  • 2021-08-16 14:34
#ifdef 改成 #ifndef
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯