我试着编写程序来管理Store。它有一些用户和商品以及订单。 这是我User.h,Good.h文件:找不到C++函数参数标识
User.h:
#ifndef _USER
#define _USER
#include "Store.h"
#include "Good.h"
namespace question1
{
class User
{
const Store store;
public:
User(Store &s) : store (s)
{
}
};
class AdminUser:User
{
};
class DeliveryUser:User
{
};
class OrderUser:User
{
void registerOrder(Order &o);
};
class ReceptionUser:User
{
void importGood(Good &g);
void increaseGood(Good &g);
};
}
#endif
和Good.h:
#ifndef _GOOD
#define _GOOD
#include <string>
#include <vector>
#include "User.h"
namespace question1
{
class Date
{
public:
Date();
Date (int mn, int day, int yr); // constructor
void display(); // function to display date
int GetMonth();
void SetMonth(int mn);
~Date();
private:
int month, day, year;
int DaysSoFar();
};
enum Ordertype{Newly_registered, Check, Answered};
class Order
{
int num;
std::string customerName;
Date registered, Check;
Ordertype type;
std::vector<int> codelist, numlist;
public:
Order();
Order(Order& o);
};
class ImportDate
{
Date importDate;
User importer;
int num;
};
class ExportDate
{
Date exportDate;
User exporter;
int num;
Order ex;
};
class Good
{
std::string name;
int code;
Date in;
int innum, AvailableNum;
User importer;
std::vector<ImportDate> importHistory;
std::vector<ExportDate> exportHistory;
public:
Good();
Good(Good &g);
};
int max (int a, int b)
{
if (a>b) return(a) ; else return (b);
}
int min (int a, int b)
{
if (a>b) return(b); else return (a);
}
}
#endif
但是当编译只是这两个代码,我得到在用户错误文件是
在函数参数列表“语法错误:标识符 '订单',第28行
“语法错误:标识符 '良好',线33
” 语法错误:标识符 '良好',第34行
。 我使用visual studio 2010.并打开空项目。
有人可以帮助我吗?
你在'#include'语句中有循环引用。第一个标题包含另一个包含第一个标题等等。 –
@Captain我认为这是#ifndef和#define声明的目的。但我仍然会给出一个镜头 – tay10r
@TaylorFlores标题防护程序可防止多次编译头文件的内容。它不会阻止循环'#include'语句。 –