類模板案例

2021-09-24 21:51:45 字數 1845 閱讀 8074

實現乙個通用的陣列類,要求如下:

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 防止淺拷貝問題 提供尾插法和尾刪法對陣列中的資料進行增加和刪除 可以通過下標的方式訪問陣列中的元素 可以...