C++面向物件的學習:寫一個數組類
阿新 • • 發佈:2019-01-30
寫一個數組類,實現相關函式,自定義建構函式能設定陣列大小,獲取陣列長度,獲取陣列的元素,
完成陣列的拷貝建構函式,允許兩個陣列物件互相賦值
#ifndef __MYARRAY_H__ #define __MYARRAY_H__ class Array { public: Array(int len) { m_len = len; m_arr = new int[len]; } ~Array() { if(m_arr != NULL) { delete []m_arr; m_arr = NULL; } } Array(const Array &obj); int length(); void setData(int index, int data); int getData(int index); private: int m_len; int *m_arr; }; #endif //__MYARRAY_H__
#include <stdio.h> #include "MyArray.h" int Array::length() { return m_len; } void Array::setData(int index, int data) { m_arr[index] = data; } int Array::getData(int index) { return m_arr[index]; } Array::Array(const Array &obj) { int i; m_len = obj.m_len; m_arr = new int[obj.m_len]; for(i=0; i<obj.m_len; i++) { m_arr[i] = obj.m_arr[i]; } }
#include <iostream> #include "MyArray.h" using namespace std; int main() { Array a1(10); for (int i=0; i<a1.length(); i++) { a1.setData(i, i); } cout<<"\n列印陣列a1: "; for (int i=0; i<a1.length(); i++) { cout<<a1.getData(i)<<" "; } cout<<endl; // 完成陣列的拷貝建構函式,允許兩個陣列物件互相賦值 Array a2 = a1; cout<<"\n列印陣列a2: "; for (int i=0; i<a2.length(); i++) { cout<<a2.getData(i)<<" "; } cout<<endl; return 0; }