C++面向对象程序设计50道编程题(第12题)
C++面向对象程序设计50道编程题(第12题)
摘要:C++程序设计实习是为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析问题和解决问题的能力,提高学生运用所学知识解决实际问题的能力。
本专辑为编程入门者、高校计算机软件专业学习或复习提供C++程序设计题库。
读者请先独立思考哦,再与参考程序进行比对检查。
一、问题描述
二、考察内容
基本面向对象概念,如何创建类、对象,对类私有数据成员和公有成员函数的理解,理解并掌握重载运算符,简单的数组运算。
三、难度等级
难度等级:★★★☆☆
四、参考程序
#include<iostream.h>
class SET{
int *a;
int len;
public:
SET(int *p,int n);
int operator ==(int m);
friend int operator ==(SET &s1, SET &s2);
void print();
~SET();
};
SET::SET(int *p,int n){
len=n;
a=new int[len];
for(int i=0;i<len;i++)
a[i]=p[i];
}
int SET::operator ==(int m){
for(int i=0;i<len;i++)
if(m==a[i])return 1;
return 0;
}
int operator ==(SET &s1, SET &s2){
if(s1.len!=s2.len)return 0;
for(int i=0;i<s1.len;i++)
if(!(s2==s1.a[i]))
return 0;
return 1;
}
void SET::print(){
for(int i=0;i<len;i++)
cout<<a[i]<<'\t';
cout<<'\n';
}
SET::~SET(){if(a)delete[]a;}
void main(){
int a[]={1,2,3,4,5},b[]={1,2,3,4,5},c[]={1,2,3,4,5,6},d[]={1,3,5,7,9};
SET s1(a,5),s2(b,5),s3(c,6),s4(d,5);
cout<<"a:\t";s1.print();
cout<<"b:\t";s2.print();
cout<<"c:\t";s3.print();
cout<<"d:\t";s4.print();
if(s1==s2)cout<<"a==b\n";
else cout<<"a!=b\n";
if(s1==s3)cout<<"a==c\n";
else cout<<"a!=c\n";
if(s1==s4)cout<<"a==d\n";
else cout<<"a!=d\n";
}
五、心得感受
可以在评论处写下思考和编程此题的感受