1.2关于类定义格式的描述中,()是错误的。A、必须以关
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A=6 B = 16 A=8 B = 24
3.3 (12分, 每空2分) 完成自定义的集合类Set,使程序执行后的输出结果为: s={0,1,2,3,4,5,6,7,8,9} s1={0,2,4,6,8,10,12,14,16,18} s2=s+s1={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18} #include <iostream.h> const int maxcard=20; class Set { int elems [maxcard]; int card; public: Set (void){card=0;}; void print(); friend bool operator & (int, Set); (1)friend Set operator + (Set, int); friend Set operator + (Set, Set); }; bool operator&(int elem, Set s) 判断元素elem是否属于集合s { for(int i=0; (2) ; i++) if(s.elems[i]==elem) return true; (3) }
Set operator+(Set s,int elem) //把整数elem加入到集s中,如s已满就不加入 { Set res=s; if( (4) ) if(!(elem&s)) res.elems[res.card++]=elem; return res; } Set operator+(Set s1, Set s2)//把集合s2中的元素加入到s1中,得到二者的并 { Set res=s1; for(int i=0; i<s2.card; i++) (5) res=res+s2.elems[i]; return res; } void Set::print () //输出集合各元素 { cout << "{"; for(int i=0; (6) i++) cout <<elems[i]<< ","; if(i==(card-1)) cout <<elems[card-1]; cout << "}"<<endl;
1.2 关于类定义格式的描述中,( )是错误的。 A、必须以关键字class开头对类进行定义 B、类中包含数据成员和成员函数 C、类中成员有三种访问属性:公有、私有和 保护 D、数据成员的访问属性都应该是私有的 1.3 下列是析构函数的特点,( )是正确的。 A、析构函数不是类成员函数 B、析构函数的名称与类名相同 C、析构函数必须指明其类型 D、析构函数的主要功能是:完成对象撤消前 的善后工作
#include <iostream.h> class M { public: M(int a) { A = a; B += a; } static void fun( M m ); private: int A; static int B; }; void M::fun(M m) { cout <<"A = "<< m.A << endl; cout <<"B = "<< B << endl; } int M::B = 10; void main() { M P(6); M::fun(P); M Q(8); Q.fun(Q); }
void main() { Set s,s1,s2; for (int i=0;i<10;i++) { s=s+i; s1=s1+2*i; } cout<<"s="; s.print(); cout<<"s1="; s1.print(); s2=s+s1; cout<<"s2=s+s1="; }
s2.print();
ຫໍສະໝຸດ Baidu
#include <iostream.h> const int maxcard=20; class Set { int elems [maxcard]; int card; public: Set (void){card=0;}; void print(); friend bool operator & (int, Set); friend Set operator + (Set, int); friend Set operator + (Set, Set); }; bool operator&(int elem, Set s) { for(int i=0; i<s.card ; i++) if(s.elems[i]==elem) return true; return false; } Set operator+(Set s,int elem) //把整数elem加入到集s中,如s已满就不加入 { Set res=s; if( s.card<maxcard ) if(!(elem&s)) res.elems[res.card++]=elem; return res; } Set operator+(Set s1, Set s2) //把集合s2中的元素加入到s1中,得到二者的并 { Set res=s1; for(int i=0; i<s2.card; i++) res=res+s2.elems[i]; return res; } void Set::print () //输出集合各元素 { cout << "{"; for(int i=0; i<card-1; i++) cout <<elems[i]<< ","; if(i==(card-1)) cout <<elems[card-1]; cout << "}"<<endl; } void main() { Set s,s1,s2; for (int i=0;i<10;i++) { s=s+i; s1=s1+2*i; } cout<<"s="; s.print(); cout<<"s1="; s1.print(); s2=s+s1; cout<<"s2=s+s1="; s2.print();