實現乙個通用的陣列類,要求如下:
myarray.hpp中**
#pragma once
#include using namespace std;
templateclass myarray
//拷貝構造
myarray(const myarray & arr) }
//過載= 操作符 防止淺拷貝問題
myarray& operator=(const myarray& myarray)
this->m_capacity = myarray.m_capacity;
this->m_size = myarray.m_size;
this->paddress = new t[this->m_capacity];
for (int i = 0; i < this->m_size; i++)
return *this;
} //過載 操作符 arr[0]
t& operator (int index)
//尾插法
void push_back(const t & val)
this->paddress[this->m_size] = val;
this->m_size++;
} //尾刪法
void pop_back()
this->m_size--;
} //獲取陣列容量
int getcapacity()
//獲取陣列大小
int getsize()
//析構
~myarray() }
private:
t * paddress; //指向乙個堆空間,這個空間儲存真正的資料
int m_capacity; //容量
int m_size; // 大小
};
類模板案例—陣列類封裝.cpp中
#include "myarray.hpp"
#include void printintarray(myarray& arr)
cout << endl;
}//測試內建資料型別
void test01()
cout << "array1列印輸出:" << endl;
printintarray(array1);
cout << "array1的大小:" << array1.getsize() << endl;
cout << "array1的容量:" << array1.getcapacity() << endl;
cout << "--------------------------" << endl;
myarrayarray2(array1);
array2.pop_back();
cout << "array2列印輸出:" << endl;
printintarray(array2);
cout << "array2的大小:" << array2.getsize() << endl;
cout << "array2的容量:" << array2.getcapacity() << endl;
}//測試自定義資料型別
class person
person(string name, int age)
public:
string m_name;
int m_age;
};void printpersonarray(myarray& personarr)
}void test02()
int main()
類模板案例 C
本案例要求 可以對自定義或內建資料型別進行操作 陣列中的資料儲存到堆區 按客戶要求的容量進行陣列的建立 防止淺拷貝以及過載 利用尾插法和尾刪法進行增加和刪除 可以通過下標訪問陣列元素,可以獲取當前陣列中的容量及元素個數資訊。由於類模板的成員函式再呼叫的時候才建立,不好分檔案編寫,所以新建標頭檔案用....
案例 陣列模板類
傳智掃地僧課程學習筆記。這裡的學習,是為了學習後面的資料結構,因為後面的資料結構的演算法的實現,是以模板的方式實現的,myvector.h include iostream using namespace std template class myvector protected t m space...
陣列類封裝案例C 模板
陣列類封裝案例 實現乙個通用的陣列類,要求如下 可以對內建資料型別以及自定義型別的資料進行儲存 將陣列中的資料儲存到堆區 建構函式中可以傳入陣列的容量 提供對應的拷貝建構函式以及operater 防止淺拷貝問題 提供尾插法和尾刪法對陣列中的資料進行增加和刪除 可以通過下標的方式訪問陣列中的元素 可以...