山西
400-650-7353
首页 > 计算机二级 > 【备考】C++考前辅导:类对象数组和静态成员

【备考】C++考前辅导:类对象数组和静态成员

2018-08-16 17:39:10 来源:互联网 荐:IT资料豪华升级版,点击加群领取

C++考前辅导:类对象数组和静态成员

一、类对象数组

类的对象和C++其他数据类型一样,也可以为其建立数组,数组的表示方法和结构一样。

#include iostream.h

class Date

{

int mo,da,yr;

public:

Date(int m=0,int d=0, int y=0) { mo=m; da=d; yr=y;}

void display() const { cout < };

int main()

{

Date dates[2];

Date today(12,31,2003);

dates[0]=today;

dates[0].display();

dates[1].display();

return 0;

}

1.类对象数组和默认构造函数

在前面已经说过,不带参数或者所有参数都有默认值的构造函数叫做默认构造函数。如果类中没有构造函数,编译器会自动提供一个什么都不做的公共默认构造函数 。如果类当中至少有一个构造函数,编译器就不会提供默认构造函数。

如果类当中不含默认构造函数,则无法实例化其对象数组。因为实例花类对象数组的格式不允许用初始化值来匹配某个构造函数的参数表。

上面的程序中,main()函数声明了一个长度为2的Date对象数组,还有一个包含初始化值的单个Date对象。接着把这个初始化的Date对象赋值给数组中第一个对象,然后显示两个数组元素中包含的日期。从输出中可以看到,第一个日期是有效日期,而第二个显示的都是0。

当声明了某个类的对象数组时,编译器会为每个元素都调用默认构造函数。

下面的程序去掉了构造函数的默认参数值,并且增加了一个默认构造函数。

#include

class Date

{

int mo, da, yr;

public:

Date();

Date(int m,int d,int y) { mo=m; da=d; yr=y;}

void display() const { cout < };

Date::Date()

{

cout < mo=0; da=0; yr=0;

}

int main()

{

Date dates[2];

Date today(12,31,2003);

dates[0]=today;

dates[0].display();

dates[1].display();

return 0;

}

运行程序,输出为:

Date constructor running

Date constructor running

12/31/2003

0/0/0

从输出中可以看出,Date()这个默认构造函数被调用了两次。

2.类对象数组和析构函数

当类对象离开作用域时,编译器会为每个对象数组元素调用析构函数。

#include iostream.h

class Date

{

int mo,da,yr;

public:

Date(int m=0,int d=0,int y=0) { mo=m; da=d; yr=y;}

~Date() {cout < void display() const {cout< };

int main()

{

Date dates[2];

Date today(12,31,2003);

dates[0]=today;

dates[0].display();

dates[1].display();

return 0;

}

运行程序,输出为:

12/31/2003

0/0/0

Date destructor running

Date destructor running

Date destructor running

表明析构函数被调用了三次,也就是dates[0],dates[1],today这三个对象离开作用域时调用的。

编辑推荐IT学习交流群:点击加群 571960479

加群备注:网站(限时赠送500G海量IT学习资料)

关注微信:山西优就业(ID:ujiuyesx)

回复:简历模板,即可领取

【各类行业的简历模板】

回复:安装包的名称,例:AI,即可领取

AI、DW、PS、AX、C4D等破解版软件

【小U将毕生绝学传授于你,打倒HR,轻松搞定CEO】

相关推荐:暑期IT镀金之行

【备考】C++考前辅导:重载双目运算符

更多分享交流,礼品领取,海量干货,请扫描下方内部资料领取二维码,一不小心就爱上IT,成为了大佬!

免责声明:本文来源于网络,由网友提供或网络搜集,仅供个人交流学习参考使用,不涉及商业盈利目的。如有版权问题,请联系本站管理员予以更改或删除。谢谢合作!

热门标签: C++ 类对象数组 静态成员

猜你喜欢

推荐阅读