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}, ...
随机推荐
- Lucene 3.0
http://www.cnblogs.com/forfuture1978/archive/2010/02/22/1671487.html http://www.cnblogs.com/jiekzou/ ...
- WPF:实现主应用程序单一实例运行方式总结
本文介绍常见的实现主应用程序单一实例运行的几种方式. 方式一: public partial class App : Application { protected override void ...
- SSH时不需输入密码
我这里有2台机器,一台装了Teradata数据库,ip是192.168.184.128,称它为teradata-pc:另一台装了Oracle数据库,ip地址是192.168.184.129,称它为 ...
- 【quartz】 入门
把技术债务给还了,首先来一个最简单的demo: 2.x版比1.x有很多改进,1.x基于fw1.2: 2.x基于fw3.5以上:语法上有很大的不同,摒弃了很多1.x的很多东西: 直接以2.x来demo ...
- Oppotunity land---China
China is a land of opportunity.Following the development of China,every sector has made their contri ...
- Wireshark - ICMP 报文分析
1. 测试机器,源 IP 地址为 10.21.28.110,目的 IP 地址为 10.6.0.24. 2. 使用 "ip.addr == 10.6.0.24 and icmp" 过 ...
- MVC3+AutoFac实现程序集级别的依赖注入
1.介绍 所谓程序集级别的依赖注入是指接口和实现的依赖不使用配置文件或硬代码实现(builder.RegisterType<UserInfoService>().As<IU ...
- Mysql创建和删除用户
问题描述: Mysql中创建用户和删除用户 问题解决: (1)查询Mysql当前登录账户 (2)创建用户 方法一: 创建用户赋予用户所有权限: 新创建的用户可以在 ...
- 使用JS启动本地应用程序、屏幕键盘
问题描述: 现在希望在Web端使用JS调用本地应用程序 问题解决: (1)使用JS启动本地应用程序 使用上述代码重点是创建了一个ActiveXObject的对象 参考说明: ...
- div+css的前端工程师的价值体现在哪些方面?
个人认为前端工程师正慢慢演变为产品工程师.wap app, 响应性UI等以html5技术为基础的开发将成为前端工程师的主要工作内容,解决产品跨平台跨设备的实现问题.Javascript, HTML, ...