C++实验关于类与对象的答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七次实验
1、写出下列程序的运行结果
1)#include <iostream>
using namespace std;
int f(int a){
return ++a;
}
int g(int& a){
return ++a;
}
void main(){
int m=0,n=0;
m+=f(g(m));
n+=f(f(n));
cout<<"m="<<m<<endl;
cout<<"n="<<n<<endl;
}
2)#include <iostream>
using namespace std;
class Demo
{
public:
Demo(){cout<<"default constructor\n";}
Demo( Demo &x){cout<<"copy constructor\n";}
};
Demo userCode(Demo b)
{ Demo c(b);
return c;
}
void main()
{ Demo a,d;
cout<<"calling userCode()\n";
d = userCode(a);
}
执行上面的程序的过程中,构造函数Demo()和Demo(Demo &x)被调用的次数分别是多少次?
2、声明一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。
观察构造函数及析构函数、复制构造函数的的执行过程。
3、设计一个日期类DA TE,包括年、月、日三个数据成员和如下成员函数:构造函数、
设置日期函数、显示日期函数、判断该年是否闰年函数、获得该天是当年的第几天函数。
#include"iostream"
using namespace std;
class DA TE{
int year,month,day;
public:
DA TE(){};
void settime();
void showtime();
void countday();
void decideyear();
};
void DA TE ::settime(){
int a,b,c;
cout<<"input year, month, day"<<endl;
cin>>a>>b>>c;
year=a;month=b;day=c;
}
void DA TE ::showtime(){
cout<<"输入的日期是"<<year<<"年"<<month<<"月"<<day<<"日"<<endl;
}
void DA TE::decideyear(){
if(year%400==0 || year%4==0 && year%100!=0)
cout<<year<<"年是闰年"<<endl;
else cout<<year<<"年不是闰年"<<endl;
}
void DA TE::countday(){
int count=0,i;
if(month==1) count=day;
if(month==2) count=31+day;
if(month>=3){
for(i=3;i<month;i++)
{
if(i==3||i==5||i==7||i==8||i==10||i==12) count+=31;
else if(i==4||i==6||i==9||i==11) count+=30;
}
if(year%400==0||year%4==0&&year%100!=0) count=count+31+29+day;
else count=count+31+28+day;}
cout<<"该天是该年的第"<<count<<"天"<<endl;}
void main(){
DA TE date;
date.settime();
date.showtime();
date.decideyear();
date.countday();
}
4、定义人民币类,数据成员包括:圆、角、分,均为整型。
类型转换函数将人民币
类强制转换为浮点数,以圆为单位。
并编程进行检验。
5、运行下面程序,请先预测改程序的结果,再通过程序来验证,并说明结果为什么是
这样?
#include"iostream"
using namespace std;
int f(int i){return ++i;}
int& g(int &i){return ++i;}
int h(int i){return ++i;}
int k(int& i){return ++i;}
void main()
{
int a=0,b=0,c=0,a1=0,b1=0,c1=0,d1=0;
a1+=f(a1);
b1+=g(b1);
c1+=h(c1);
d1+=k(d1);
a+=f(g(a));
b+=g(g(b));
c+=f(h(c));
cout<<"a1="<<a1<<",b1="<<b1<<",c1="<<c1<<",d1="<<d1<<endl;
cout<<"a="<<a<<",b="<<b<<",c="<<c<<endl;
}。