定义数组对象以后,对数组中的对象初始化的方式分为两种:

一种方式是在定义的时候用列表初始化

A a[5] = {A(1),A(2),A(3),A(4),A(5)};

一种方式是在定义了数组对象以后,再使用临时对象进行初始化

	A b[5];
b[0] = A(1);
b[1] = A(2);
b[2] = A(3);
b[3] = A(4);
b[4] = A(5);

有趣的是,第一种方式不是使用了临时对象,而是直接对数组中的对象的数据对数组元素进行初始化,第二种方式是先建立一个临时对象,然后对数组元素一一赋值。

通过构造函数和析构函数可以看出来:

#include<iostream>
using namespace std;
class A
{
public:
A(int n=0)
{
i = n;
cout<<"================>constructor :"<<i<<endl;;
}
~A()
{
cout<<"================>destructor :"<<i<<endl;;
}
private:
int i;
};
int main()
{
cout<<"=============start test one=============="<<endl;
A a[5] = {A(1),A(2),A(3),A(4),A(5)};
cout<<"=============end test one================"<<endl<<endl;
cout<<"============start test two================"<<endl;
A b[5];
b[0] = A(1);
b[1] = A(2);
b[2] = A(3);
b[3] = A(4);
b[4] = A(5);
cout<<"==============end test two================="<<endl;
return 0;
}

输出结果:

最新文章

  1. 制作自己的MVC框架(一)——简单粗暴的实现
  2. GCD的基本知识
  3. ExtJS学习之路第三步:理解引擎之下,ExtJS4中的类
  4. HDU 1217 Arbitrage (Floyd)
  5. OpenXML - 如何导出List&lt;DataModel&gt;到Excel -- Part 1
  6. henrylee2cn简单的rpc服务
  7. 【百度地图API】如何获取行政区域的边界?(转载)
  8. 【php增删改查实例】第十三节 - EasyUI列格式化
  9. [svc]runinit管理多进程
  10. Nginx技术研究系列2-基于Redis实现动态路由
  11. js弹出div层内容(按回退键关闭div层及遮罩)
  12. bzoj3173: [Tjoi2013]最长上升子序列(fhqtreap)
  13. Knowledge Point 20180305 补位的两种方式
  14. Java语法基础课后作业
  15. FIS3项目构建
  16. Delphi XE8中Delphi和JAVA数据类型对应关系!
  17. mongodb随机查询一条记录的正确方法!
  18. Apatar 学习文档
  19. CentOS系统日志
  20. American Heritage usaco

热门文章

  1. json与NSString转换
  2. pandas 中文快速查询手册
  3. linux 处理端口
  4. Ajax与后台的交互
  5. DataGridView绑定数据源的几种方式
  6. model1 就是jsp+javabean
  7. hdoj-1106-排序(stringstream)
  8. hdu-3068-最长回文(manacher算法模板)
  9. codeforces D. Area of Two Circles&#39; Intersection 计算几何
  10. BZOJ - 2244 拦截导弹 (dp,CDQ分治+树状数组优化)