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. 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM