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}, ...
随机推荐
- django - transaction
def user_atomic(): User.objects.create(name='purk1', email='pwu1@maxprocessing.com') User.objects.cr ...
- require.js入门指南(三)
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
- 爱重启的windows,伤不起
.
- 【python】 web开发入门
进入Web开发 现在你完成了Python忍者训练,准备深入Ptyhon的Web开发,但现在的问题是有很多的框架,从中选择最好的框架非常困难,但从初学者的角度出发,Flask基本Web框架将非常适合We ...
- JAVA equals, ==
都是判相等,对于基本变量没区别,只是对动态变量(即对象)有区别: ==:引用相等(reference comparison).对于对象引用,即判断引用值也就是地址是否相等.即如果Object a,b, ...
- 分布式文件系统 - FastDFS
分布式文件系统 - FastDFS 别问我在哪里 也许我早已不是我自己,别问我在哪里,我一直在这里. 突然不知道说些什么了... 初识 FastDFS 记得那是我刚毕业后进入的第一家公司,一个技术小白 ...
- C# Windows - 菜单栏和工具栏
除了MenuStrip控件之外,还有许多控件可用于填充菜单.3个常见的控件是ToolStripMenuItem,ToolStripDropDown,和ToolStripSeparator.这些控件表示 ...
- 在myeclipse中使用Java语言进行spark Standalone模式应用程序开发
一.环境配置 Myeclipse中虽然已经集成了maven插件,但是由于这个插件版本较低,建立maven project会出现错误. 解决办法:自己到官网http://maven.apache.org ...
- aes 解密出现 java.lang.NumberFormatException: Invalid int: "ch"
原因: 将加密/解密的seed 和 加密内容顺序放反. decrypt(String seed, String encrypted) 附上AES解密/加密代码(android开发): package ...
- 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
// test14.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...