对象数组 

对象数组:每一个数组元素都是对象的数组,也就是说,若一个类有若干个对象,我们把这
一系列的对象用一个数组来存放。对应数组元素是对象,不仅具有的数据成员,而且还有函数
成员。 @定义一个一维数组的格式如: 类名 数组名[下标表达式]; @使用对象数组时只能访问单个数组元素,其一般格式如: 数组名[下标].成员名 举例: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++:对象数组的更多相关文章

  1. php将对象数组转成普通数组

    不知道为什么,把数组序列化为json,然后存到redis(string类型).然后再取出来反序列化为数组,就变成对象数组了 thinkPHP普通数组取值$arr['key'] 对象数组取值$arr-& ...

  2. Winform窗体用对象数组做一个小项目

    首先我我们看一下需求:我们要做的是显示员工信息,实现项目经理给员工评分的功能! 首先项目经理是评分的人所以没有用,因为我们自己写,评分的就是我们自己.所以我们要做的是先在vs也就是我们的环境里建一个项 ...

  3. JS传递对象数组为参数给后端,后端获取

    前端JS代码: var conditons = []; var test1 = new Object(); test1.name="1"; test1.id="2&quo ...

  4. Struts2之提交对象数组至后台

    struts2中有许多很好的特性,比如在设置好getter和setter方法后,加上前端的匹配设置,后台即可自动将前端输入的数据转换为后台的相应的对象. 如现在传入一个Person类的对象,其中Per ...

  5. 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象, const 指针和指向 const 对象的指针, const 对象的引用

    [源码下载] 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象,  const 指针和指向 const 对象的指针, con ...

  6. java语言一维数组,对象数组

    /** * 对象数组的使用 */package com.test5; import java.io.BufferedReader;import java.io.InputStream;import j ...

  7. 如何将PHP对象数组转换成普通数组

    /** * 对象数组转为普通数组 * * AJAX提交到后台的JSON字串经decode解码后为一个对象数组, * 为此必须转为普通数组后才能进行后续处理, * 此函数支持多维数组处理. * * @p ...

  8. java 14-11 对象数组

    有5个学生,请把这个5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息. 创建学生类: 学生:Student 成员变量:name,age 构造方法:无参,带参 成员方法:getXxx()/ ...

  9. JSon_零基础_007_将JSon格式的"数组"字符串转换为Java对象"数组"

    将JSon格式的"数组"字符串转换为Java对象"数组". 应用此技术从一个json对象字符串格式中得到一个java对应的对象. JSONObject是一个“n ...

  10. AngularJS初始化普通数组和对象数组

    普通数组: ng-init="persons=['john','jack']" 对象数组: ng-init="persons=[{name:'john',age:20}, ...

随机推荐

  1. python 安装 setuptools Compression requires the (missing) zlib module 的解决方案

    背景: 虚拟机centos下安装python辅助工具 setuptools报错,错误信息大概如下: Traceback (most recent call last): File "setu ...

  2. roscpp源码阅读

    roscpp doxgen 这只是我摘取的一些主要代码 node_handle.cpp //NodeHandle的构造函数 void NodeHandle::construct(const std:: ...

  3. XAML 概述二

    通过上一节我们已经对XAML有了一定的了解,这一节我们来系统的学习一下XAML. 一. 简单属性与类型转换器,属性元素: 我们已经知道 XAML是一种声明性的语言,并且XAML解析器会为每个标签创建一 ...

  4. java常用集合类:Deque,ArrayList,HashMap,HashSet

    图一:java collection 类图 Queue家族 无论是queue还是stack,现在常用的是Deque的实现类:如单线程的ArrayQueue,多线程的ArrayBlockingQueue ...

  5. 【BZOJ 1068】[SCOI2007]压缩

    Description 给 一个由小写字母组成的字符串,我们可以用一种简单的方法来压缩其中的重复信息.压缩后的字符串除了小写字母外还可以(但不必)包含大写字母R与M,其中M 标记重复串的开始,R重复从 ...

  6. Nginx + Tomcat 动静分离实现负载均衡(转)

    0.前期准备 使用Debian环境.安装Nginx(默认安装),一个web项目,安装tomcat(默认安装)等. 1.一份Nginx.conf配置文件 # 定义Nginx运行的用户 和 用户组 如果对 ...

  7. iOS VideoToolbox硬编H.265(HEVC)H.264(AVC):2 H264数据写入文件

    本文档为iOS VideoToolbox硬编H.265(HEVC)H.264(AVC):1 概述续篇,主要描述: CMSampleBufferRef读取实际数据 序列参数集(Sequence Para ...

  8. Android Studio 单刷《第一行代码》系列 01 —— 第一战 HelloWorld

    前言(Prologue) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Android ...

  9. Ubuntu 常用软件安装方法

    macubuntu 安裝方法: $wget https://github.com/downloads/ChinaLuo/Mac_Ubuntu/Mac_Ubuntu-12.04.tar.gz -O /t ...

  10. emulatorarm.exe已停止工作

    今天使用ADT 打开android模拟器突然发现模拟器报错,[emulatorarm.exe已停止工作],昨天还是好好的,不知道为什么,重建新的模拟器还是这样. 解决办法: 更改ram大小为 512M ...