永发信息网

我看不懂这2个程序 谁给我解释解释

答案:1  悬赏:20  手机版
解决时间 2021-04-11 16:18
  • 提问者网友:难遇难求
  • 2021-04-11 04:35

#include <iostream.h>
class Date
{
public:
Date(int y);
Date(int y,int m);
Date(int y,int m,int d);
void print();
private:
int year,month,day;
};
//类的实现部分
Date::Date(int y)
{
year=y;month=day=1;
cout<<"1个参数的构造函数已被调用。"<<endl;
}
Date::Date(int y,int m)
{
year=y;
month=m;
day=1;
cout<<"2个参数的构造函数已被调用。"<<endl;
}
Date::Date(int y,int m,int d)
{
year=y;
month=m;
day=d;
cout<<"3个参数的构造函数已被调用。"<<endl;
}
void Date::print()
{
cout<<year<<"."<<month<<"."<<day<<endl;
}
void main()
{
Date t1(2005),t2(2005,2),t3(2005,3,2);
t1.print();
t2.print();
t3.print();
}

#include <iostream.h>
class rectangle
{
private:
int length;
int width;
static int extra_data;
public:
rectangle();
void set(int new_length,int new_width);
int get_area();
int get_extra();
};
int rectangle::extra_data=1;
rectangle::rectangle()
{
length=8;
width=8;
}
void rectangle::set(int new_length,int new_width)
{
length=new_length;
width=new_width;
}
int rectangle::get_area()
{
return (length*width);
}
int rectangle::get_extra()
{
return extra_data++;
}
void main()
{
rectangle small,medium,large;
small.set(5,7);
large.set(15,20);
cout<<"Small rectangle area is "<<small.get_area()<<endl;
cout<<"Medium rectangle area is "<<medium.get_area()<<endl;
cout<<"Large rectangle area is "<<large.get_area()<<endl;
cout<<"The static data value is "<<small.get_extra()<<endl;
cout<<"The static data value is "<<medium.get_extra()<<endl;
cout<<"The static data value is "<<large.get_extra()<<endl;
}

最佳答案
  • 五星知识达人网友:鱼忧
  • 2021-04-11 06:02

第一题说明了类的构造函数是可以重构的,这里他写了三个构造函数,不一样之处在于参数数目不同。在main函数中,他分别调用了这三个。


第二题类是简单的求面积的类,加入了一个全局变量,所有该类的对象引用的extra变量地址是相同的,就是说拟定以多少的对象她的extra都是一个数,而不是每个单独拥有一个extra。这样你对extra的修改在别的类对象中同样有影响。另一个问题是这个类中只有一个构造函数,系统调用了这个函数把长度,宽度初始化为8,还定义了一个赋值函数,可以把长度和宽度赋值为你想要的值。最后用计算面积的函数计算,并调用输出函数输出。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯