C++:对象数组
对象数组 对象数组:每一个数组元素都是对象的数组,也就是说,若一个类有若干个对象,我们把这
一系列的对象用一个数组来存放。对应数组元素是对象,不仅具有的数据成员,而且还有函数
成员。 @定义一个一维数组的格式如: 类名 数组名[下标表达式]; @使用对象数组时只能访问单个数组元素,其一般格式如: 数组名[下标].成员名 举例:Complex com[2]={11,22};//定义类Complex的实参数1个的对象数组com,含有n个对象数组元素
举例:Complex com[2]={
Complex(11,22),
Complex(33,44),
}; //定义的实参个数为2个的对象数组com,含有n个对象数组元素
/* //例3.14 用只有一个参数的构造函数给对象数组赋值
#include<iostream>
using namespace std;
class exam{
public:
exam(int n) //只有一个参数的构造函数
{
x = n;
}
int getx()
{
return x;
}
private:
int x;
};
int main()
{
exam obj[3]={11,22,33}; //用只有一个参数的构造函数给对象数组进行赋值,三个对象
for(int i=0;i<=2;i++)
cout<<"第"<<i+1<<"个对象是: "<<"obj["<<i<<"]"<<" = "<<obj[i].getx()<<endl;
return 0;
}
运行结果: 第1个对象是: obj[0] = 11
第2个对象是: obj[1] = 22
第3个对象是: obj[2] = 33 // 例3.15 用不带参数和带一个参数的构造函数给对象数组赋值
#include<iostream>
using namespace std;
class exam{
public:
exam() //不带参数的构造函数
{
x = 88;
}
exam(int n) //只有一个参数的构造函数
{
x = n;
}
int getx()
{
return x;
}
private:
int x;
};
int main()
{
exam obj1[3]={11,22,33}; //三个对象均用只有一个参数的构造函数给对象数组进行赋值
exam obj2[3]={44}; //第一对象调用有一个参数的构造函数赋值,后两个对象调用无参的构造函数赋默认值
for(int i=0;i<=2;i++)
cout<<"第"<<i+1<<"个对象是: "<<"obj1["<<i<<"]"<<" = "<<obj1[i].getx()<<endl;
cout<<endl;
for(int i=0;i<=2;i++)
cout<<"第"<<i+1<<"个对象是: "<<"obj2["<<i<<"]"<<" = "<<obj2[i].getx()<<endl;
return 0;
}
运行结果: 第1个对象是: obj1[0] = 11
第2个对象是: obj1[1] = 22
第3个对象是: obj1[2] = 33 第1个对象是: obj2[0] = 44
第2个对象是: obj2[1] = 88
第3个对象是: obj2[2] = 88
*/ //例3.16 用带有多个参数的构造函数给对象数组赋值。 #include<iostream>
#include<cmath>
using namespace std;
class Complex{
public:
Complex(double r=0.0,double i=0.0):real(r),imag(i)
{}//定义带有默认参数的构造函数,用成员初始化列表对数据成员进行初始化
~Complex()
{
cout<<"Destructor called."<<endl;
}
double abscomplex()
{
double t;
t = real*real+imag*imag;
return sqrt(t);
}
private:
double real;
double imag;
};
int main()
{
Complex A[]={
Complex(1.1,2.2),
Complex(3.3,4.4),
Complex(5.5,6.6),
};
for(int i=; i<=; i++)
cout<<"复数对象A["<<i<<"]的绝对值是: "<<A[i].abscomplex()<<endl;
return ;
}
运行结果:复数对象A[]的绝对值是: 2.45967
复数对象A[]的绝对值是: 5.5
复数对象A[]的绝对值是: 8.59127
Destructor called.
Destructor called.
Destructor called.
C++:对象数组的更多相关文章
- php将对象数组转成普通数组
不知道为什么,把数组序列化为json,然后存到redis(string类型).然后再取出来反序列化为数组,就变成对象数组了 thinkPHP普通数组取值$arr['key'] 对象数组取值$arr-& ...
- Winform窗体用对象数组做一个小项目
首先我我们看一下需求:我们要做的是显示员工信息,实现项目经理给员工评分的功能! 首先项目经理是评分的人所以没有用,因为我们自己写,评分的就是我们自己.所以我们要做的是先在vs也就是我们的环境里建一个项 ...
- JS传递对象数组为参数给后端,后端获取
前端JS代码: var conditons = []; var test1 = new Object(); test1.name="1"; test1.id="2&quo ...
- Struts2之提交对象数组至后台
struts2中有许多很好的特性,比如在设置好getter和setter方法后,加上前端的匹配设置,后台即可自动将前端输入的数据转换为后台的相应的对象. 如现在传入一个Person类的对象,其中Per ...
- 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象, const 指针和指向 const 对象的指针, const 对象的引用
[源码下载] 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象, const 指针和指向 const 对象的指针, con ...
- java语言一维数组,对象数组
/** * 对象数组的使用 */package com.test5; import java.io.BufferedReader;import java.io.InputStream;import j ...
- 如何将PHP对象数组转换成普通数组
/** * 对象数组转为普通数组 * * AJAX提交到后台的JSON字串经decode解码后为一个对象数组, * 为此必须转为普通数组后才能进行后续处理, * 此函数支持多维数组处理. * * @p ...
- java 14-11 对象数组
有5个学生,请把这个5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息. 创建学生类: 学生:Student 成员变量:name,age 构造方法:无参,带参 成员方法:getXxx()/ ...
- JSon_零基础_007_将JSon格式的"数组"字符串转换为Java对象"数组"
将JSon格式的"数组"字符串转换为Java对象"数组". 应用此技术从一个json对象字符串格式中得到一个java对应的对象. JSONObject是一个“n ...
- AngularJS初始化普通数组和对象数组
普通数组: ng-init="persons=['john','jack']" 对象数组: ng-init="persons=[{name:'john',age:20}, ...
随机推荐
- jar 命令打war包
假定有一个Web应用:C:\myHomemyHome/WEB-INF/……myHome/files/……myHome/image/……myHome/src/……myHome/index.jsp在命令行 ...
- eclipse增加浏览器chrome
1.安装完了google chrome游览器后,如何让eclipse直接用chrome打开jsp 2.添加到eclipse环境中即可, Window(菜单) -- preferences 增加成功后, ...
- Redis 四:存储类型之无序集合
.sadd num a b c 向num集合中添加abc三个元素 .srem num b 从num集合中删除b元素 .smembers num 获取num集合中所有的元素 .sismember num ...
- 安装Golang 1.6及开发环境
安装Golang 1.6及开发环境=====================================> 下载软件 * go1.4.2.linux-amd64.tar.gz ...
- 【iOS】屏幕旋转,屏幕自适应方向变化
1. iOS有四个方向的旋转,为了保证自己的代码能够支持旋转,我们必须首先处理一个函数: - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInter ...
- ASP.NET MVC +EasyUI 权限设计(二)环境搭建
请注明转载地址:http://www.cnblogs.com/arhat 今天突然发现博客园出问题了,老魏使用了PC,手机,平板都访问博客园了,都是不能正常的访问,原因是不能加载CSS,也就是不能访问 ...
- Ubuntu多系统安装注意事项
1. 安装 选择分区时一定要全设置成逻辑分区,不能是主分区! 2.多系统引导向修复 利用LiveCD制作U盘启动进入Ubuntu系统,若挂载点为: /dev/sda9 swap ...
- SharePoint 优化显示WebParts
在开发sharepoint中,经常遇到需要自定义显示列表中的一部分作为导航的内容, 如公告栏,新闻链接,最新动态等.... 我们通常需要显示一个列表的标题,并且限制字符长度, 外加一些条件,如按创建的 ...
- JavaScript string array 数组
Array类可以如下定义: var aValues = new Array(); 如果预先知道数组的长度,可以用参数传递长度 var aValues = new Array(20); -------- ...
- Eclipse 创建Maven工程
前言 开发环境 sts-3.7.2.RELEASE 创建步骤 1.开启eclipse,右键new——>other,如下图找到maven project 2.选择maven project,显示创 ...