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[3]={
                 Complex(1.1,2.2),
                 Complex(3.3,4.4),
                 Complex(5.5,6.6),
              };
 for(int i=0; i<=2; i++)
  cout<<"复数对象A["<<i<<"]的绝对值是: "<<A[i].abscomplex()<<endl;
 return 0;              
} 
        运行结果:复数对象A[0]的绝对值是: 2.45967
                  复数对象A[1]的绝对值是: 5.5
                  复数对象A[2]的绝对值是: 8.59127
                  Destructor called.
                  Destructor called.
                  Destructor called.


 
复制代码

 

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!
分类: C++
 
 
本文转自当天真遇到现实博客园博客,原文链接: http://www.cnblogs.com/XYQ-208910/p/4911838.html,如需转载请自行联系原作者
相关文章
|
3天前
|
存储 编译器 C语言
c++的学习之路:5、类和对象(1)
c++的学习之路:5、类和对象(1)
19 0
|
28天前
|
存储 编译器 C语言
C++入门: 类和对象笔记总结(上)
C++入门: 类和对象笔记总结(上)
33 0
|
1月前
|
存储 算法 编译器
【C++ 字符数组的模板特化】面向字符串的C++模板特化:理解与实践
【C++ 字符数组的模板特化】面向字符串的C++模板特化:理解与实践
47 1
|
1月前
|
存储 JSON 安全
【C++ JSON库 json值的创建手段】深入探究C++中JSON对象定位与操作:从引用到回调函数
【C++ JSON库 json值的创建手段】深入探究C++中JSON对象定位与操作:从引用到回调函数
66 0
|
3天前
|
C++
c++的学习之路:7、类和对象(3)
c++的学习之路:7、类和对象(3)
19 0
|
2天前
|
存储 人工智能 C++
【重学C++】【指针】详解让人迷茫的指针数组和数组指针
【重学C++】【指针】详解让人迷茫的指针数组和数组指针
23 1
|
2天前
|
编译器 C++
【C++基础(八)】类和对象(下)--初始化列表,友元,匿名对象
【C++基础(八)】类和对象(下)--初始化列表,友元,匿名对象
|
8天前
|
编译器 C++
自从学了C++之后,小雅兰就有对象了!!!(类与对象)(中)——“C++”
自从学了C++之后,小雅兰就有对象了!!!(类与对象)(中)——“C++”
|
8天前
|
存储 编译器 C++
自从学了C++之后,小雅兰就有对象了!!!(类与对象)(上)——“C++”
自从学了C++之后,小雅兰就有对象了!!!(类与对象)(上)——“C++”
|
9天前
|
C++
【C++成长记】C++入门 | 类和对象(下) |Static成员、 友元
【C++成长记】C++入门 | 类和对象(下) |Static成员、 友元