c++类与对象简单实例的一个问题

1. #include <iostream.h>
2. const maxCard = 100;
3. enum bool {false, true};
4. class Set {
5. public:
6. void EmptySet (void) { card = 0; }
7. bool Member (const int);
8. void AddElem (const int);
9. void RmvElem (const int);
10. void Copy (Set&);
11. bool Equal (Set&);
12. void Intersect (Set&, Set&);
13. void Union (Set&, Set&);
14. void Print (void);
15. private:
16. int elems[maxCard]; // 集合元素
17. int card; // 集合元素个数
18. };

表10-3 注释

2. MaxCard 表示集合中的最大元素个数
6. EmptySet通过设置集合中的元素个数为0,清除集合中的内容
7. Member 检查一个给定的数是否是集合中的元素
8. AddElem增加一个新的元素到集合中,如果该元素已经在集合中,则集合保持不变,否则,在不使集合溢出的前提下,插入该元素
9. RmvElem删除集合中的一个元素
10. Copy复制一个集合到另一个集合
11. Equal检查两个集合是否相等,两个集合相等的条件是:两个集合所包含的元素是完全相同的
12. Intersect比较两个集合,生成一个新的集合,且该集合的元素同时包含在另外两各集合中。例如,集合{2,5,3}和{7,5,2}通过Intersect运算后,生成的集合为{2,5}
13. Union比较两个集合,生成一个新的集合,且该集合的元素包含另两个集合的全部元素。例如,集合{2,5,3} 和 {7,5,2}通过union 运算后,生成的集合为{2,5,3,7}
14. Print打印一个集合。例如,包含元素5, 2, 和10的集合打印为{5,2,10}
16. elems 数组表示集合元素
17. card 表示集合中元素的个数

以上为类的定义代码,程序本身功能很简单,就不贴后面的代码了。

看上面的代码 第二句 maxCard没有定义类型
第三句 vc2008报错如下:
1>d:\学习资料\c++\vc\learn\learn\learn.cpp(7) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\学习资料\c++\vc\learn\learn\learn.cpp(8) : error C2332: “enum”: 缺少标记名
1>d:\学习资料\c++\vc\learn\learn\learn.cpp(8) : error C2628: “<unnamed-tag>”后面接“bool”是非法的(是否忘记了“;”?)
1>d:\学习资料\c++\vc\learn\learn\learn.cpp(8) : error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>d:\学习资料\c++\vc\learn\learn\learn.cpp(8) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)

请问这是什么问题?该怎么解决?
//教材本身已经用了一个月,没有任何错误,今天这东西让我彻底懵了

const maxCard = 100;给maxCard一个类型int,或者用内联函数定义。枚举enum中,bool类型是c++语言库里面的,名字应该不符合要求。追问

注释点enum可以正常运行 但是书上的代码有这一行,所以不懂了

追答

你不需要定义enum bool{false,true}啊,直接在类的私有成员里bool 一个变量就可以,试试看,能不能!

追问

能 但是就不知道书上把它摆出来干什么

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答