C++数组对象和构造函数
定义数组对象以后,对数组中的对象初始化的方式分为两种:
一种方式是在定义的时候用列表初始化
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;
}
输出结果:
C++数组对象和构造函数的更多相关文章
- Js笔记(对象,构造函数,原型,原型链,继承)及一些不熟悉的语法
对象的特性: 1.唯一标识性,即使完全不一样的对象,内存地址也不同,所以他们不相等 2.对象具有状态,同一个对象可能处在不同状态下 3.对象具有行为,即对象的状态可能因为他的行为产生变迁 Js直到es ...
- constructor 属性返回变量或对象的构造函数。判断是否为日期,数组的例子
constructor 属性返回变量或对象的构造函数. <!DOCTYPE html> <html> <head> <meta charset="u ...
- C++(二十六) — 构造函数、析构函数、对象数组、复制构造函数
1.构造函数 (1)每个类都要定义它自己的构造函数和析构函数,是类的成员函数. 特点:名称与类名相同:没有返回值:一定是共有函数,可以直接访问类内所有成员函数:可以带默认形参,可以重载: class ...
- 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象, const 指针和指向 const 对象的指针, const 对象的引用
[源码下载] 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象, const 指针和指向 const 对象的指针, con ...
- [Effective JavaScript 笔记]第58条:区分数组对象和类数组对象
示例 设想有两个不同类的API.第一个是位向量:有序的位集合 var bits=new BitVector(); bits.enable(4); bits.enable([1,3,8,17]); bi ...
- JavaScript之数组对象
Array类型是ECMAScript中最常用的类型了. 一.声明方式 1.使用Array构造函数 var arr1 = new Array(); 如果预先知道要保存数组的数量, 也可以给构造函数传递该 ...
- JS中集合对象(Array、Map、Set)及类数组对象的使用与对比
原文地址 在使用js编程的时候,常常会用到集合对象,集合对象其实是一种泛型,在js中没有明确的规定其内元素的类型,但在强类型语言譬如Java中泛型强制要求指定类型. ES6引入了iterable类型, ...
- js- 类数组对象
JavaScript中,数组是一个特殊的对象,其property名为正整数,且其length属性会随着数组成员的增减而发生变化,同时又从Array构造函数中继承了一些用于进行数组操作的方法. 而对于一 ...
- Javascript数组与类数组对象
问题来由: 之前面试X公司的时候,问我关于原型链知道多少,于是我就开始说了一些有关于原型链的东西,面试官问Array的原型是什么,我说是对象,毕竟Array.prototype===array.__p ...
随机推荐
- App Store下载Mac应用失败的解决办法
1. 更换DNS服务器 国内可以用alidns: 223.5.5.5 223.6.6.6 也可以用电信的: 114.114.114.114 国外的可以考虑Google 8.8.8.8 8.8.4.4 ...
- 为mac终端添加tree命令
原文:http://superuser.com/questions/359723/mac-os-x-equivalent-of-the-ubuntu-tree-command/ 整理步骤如下: $ t ...
- UrlRewrite重写url
UrlRewrite就是我们通常说的地址重写,用户得到的全部都是经过处理后的URL地址. 优点 (1)提高安全性 可以有效的避免一些参数名.ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的 ...
- mysql插入一万条数据
定义一个存储过程 mysql> delimiter $$ mysql> create procedure ptest() -> begin -> declare p ...
- WebView的简单使用
activity_main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout ...
- hibernate.spring.xml
<!-- 配置数据库连接池(c3p0) --> <!-- <bean id="dataSource" class="com.mchange.v2. ...
- git教程1-git工作原理与初始化仓库
一.git工作原理 1.git是版本控制器,因此管理的是版本,每一次提交commit就是新建一个版本. 2.分支:git主分支可以存放一个阶段已经完成好的版本,而修改版本则放置在次分支上. 3.融合: ...
- 关于/usr/bin/ld: cannot find -lcrypto 的错误
Linux下 build code 时,要做 -lssl, -lcrypto 的链接,出现类似下面的错误: /usr/bin/ld: cannot find -lcrypto /usr/bin/ld: ...
- UVA 11605 Lights inside a 3d Grid
#include <iostream> #include <stdio.h> #include <cstring> #include <math.h> ...
- 洛谷【AT2827】LIS
浅谈\(DP\):https://www.cnblogs.com/AKMer/p/10437525.html 题目传送门:https://www.luogu.org/problemnew/show/A ...