C++数组对象和构造函数
2024-09-29 02:52:40
定义数组对象以后,对数组中的对象初始化的方式分为两种:
一种方式是在定义的时候用列表初始化
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;
}
输出结果:
最新文章
- 制作自己的MVC框架(一)——简单粗暴的实现
- GCD的基本知识
- ExtJS学习之路第三步:理解引擎之下,ExtJS4中的类
- HDU 1217 Arbitrage (Floyd)
- OpenXML - 如何导出List<;DataModel>;到Excel -- Part 1
- henrylee2cn简单的rpc服务
- 【百度地图API】如何获取行政区域的边界?(转载)
- 【php增删改查实例】第十三节 - EasyUI列格式化
- [svc]runinit管理多进程
- Nginx技术研究系列2-基于Redis实现动态路由
- js弹出div层内容(按回退键关闭div层及遮罩)
- bzoj3173: [Tjoi2013]最长上升子序列(fhqtreap)
- Knowledge Point 20180305 补位的两种方式
- Java语法基础课后作业
- FIS3项目构建
- Delphi XE8中Delphi和JAVA数据类型对应关系!
- mongodb随机查询一条记录的正确方法!
- Apatar 学习文档
- CentOS系统日志
- American Heritage usaco
热门文章
- json与NSString转换
- pandas 中文快速查询手册
- linux 处理端口
- Ajax与后台的交互
- DataGridView绑定数据源的几种方式
- model1 就是jsp+javabean
- hdoj-1106-排序(stringstream)
- hdu-3068-最长回文(manacher算法模板)
- codeforces D. Area of Two Circles&#39; Intersection 计算几何
- BZOJ - 2244 拦截导弹 (dp,CDQ分治+树状数组优化)