首页 新闻 搜索 专区 学院

vs2012上编程C++语言,C11标准编译error

0
悬赏园豆:50 [已关闭问题] 关闭于 2018-06-03 11:46
 1 #pragma once
 2 #include "Durations.h"
 3 #include "Guards.h"
 4 #include <ctime>
 5 
 6 class CDuration
 7 {
 8 public:
 9     CDuration(void);
10     ~CDuration(void);
11 
12     //自定义ID类型
13     using id = long;
14     //别名标识记录类型
15     using counter = id;
16 
17     //记录结构体
18     struct rec
19     {
20         size_t cbsize;
21         time_t front;
22         time_t back;
23         long len;
24         CGuards::GuardsInfo guardsinfo;
25     };
26 
27     //提交时间段记录
28     const rec submitInfo();
29 
30     void setStage(time_t front,time_t back);
31     //时间长度,单位:分钟
32     long getLength();
33 
34     CGuards* getGuards(CGuards* gurds);
35     CDurations* getParent(CDurations* prt);
36     CGuards* getGuards(void);
37     CDurations* getParent(void);
38 
39     //重载比较运算符
40     bool operator==(CDuration& dur)const;
41     bool operator!=(CDuration& dur)const{return !(*this==dur);}
42 private:
43     //辅助函数
44     const id getid()const;
45     //自动分配有效id
46     void dispatch_id();
47 
48 private:
49     CDurations *parent;
50     CGuards* guards;
51     time_t start;
52     time_t end;
53     //自己的唯一标识
54     id unique_id;
55 
56     //id:按照出生顺序累加
57     //存在的对象数目
58     static  counter dur_count;
59     static id dur_max;
60 };

以上是“Duration.h”

 1 #pragma once
 2 #include "Duration.h"
 3 #include <vector>
 4 using std::vector;
 5 
 6 class CDurations
 7 {
 8 public:
 9     CDurations(void);
10     ~CDurations(void);
11 
12     size_t size()const;
13     long getLength();
14 
15     void append(CDuration& dur);
16     void remove(CDuration& dur);
17     void clear();
18 
19 private:
20     vector<CDuration> durations;
21 
22 };

以上是“Durations.h”

程序比较大,互相 包含文件比较多,先不全部粘贴上来了。

以这些代码为例,编译就会出现错误,怎么改都消除不掉,不知是不是C11标准问题还是代码不规范导致的,请大神帮忙分析一下。

后续代码如果需要,我再粘上。

错误标识:

错误 283 error C2923: “std::vector”: 对于参数“_Ty”,“CDuration”不是有效的 模板 类型变量 d:\窗口程序\sitemanager\sitemanager\durations.h 20 1 SiteManager

错误 282 error C2065: “CDuration”: 未声明的标识符 d:\窗口程序\sitemanager\sitemanager\durations.h 20 1 SiteManager

错误 576 error C3867: “std::vector<_Ty>::size”: 函数调用缺少参数列表;请使用“&std::vector<_Ty>::size”创建指向成员的指针 d:\窗口程序\sitemanager\sitemanager\durations.cpp 15 1 SiteManager

...

错误数量太多,这里不一一复制了,就如上为例吧。

TearsOfDawn的主页 TearsOfDawn | 初学一级 | 园豆:34
提问于:2018-05-26 22:18
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册