類模板 MyArray框架搭建和函式實現

2021-08-16 16:11:00 字數 1141 閱讀 1605

#include

using

namespace

std;

template

class myarray

~myarray()

}myarray(const myarray& arr)//拷貝建構函式,使用const,防止傳入引數改變

}t& operator(int index)

myarrayoperator=(const myarray& arr)

this->msize = arr.msize;

this->mcapacity = arr.mcapacity;

//申請記憶體空間

this->paddr = new t[this->mcapacity];

//資料拷貝

for (int i = 0; i < this.msize; i++)

return *this;

}void pushback(t& data)

//呼叫拷貝構造後者 =號操作符過載

//1.物件元素必須能夠被拷貝

//2.容器都是值寓意,而非引用寓意,向容器中放入元素,都是放入的元素的拷貝份,而非本身

//3.如果元素的成員有指標,注意深拷貝和淺拷貝的問題;

this->paddr[this->msize] = data;

this->msize++;

}//t&&對右值進行取引用,c++11的新標準

void pushback(t&& data)

this->paddr[this->msize] = data;

this->msize++;

}public:

//一共可以容下多少個元素

int mcapacity;

//當前陣列有多少元素

int msize;

//儲存資料的首位址

t* paddr;

};void test01()

cout

<< endl;

}class person{};

void test02()

int main()

總結:

1、了解左值、右值的概念;

2、複習淺拷貝和深拷貝的區別;

MyArray類模板實現

define crt secure no warnings include include using namespace std template class myarray myarray const myarray arr myarray t operator int index myarra...

自定義陣列容器MyArray框架

includeusing namespace std template class myarray 拷貝構造 myarray const myarray arr myarray 過載運算子 t operator int nindex 過載運算子 myarrayoperator const myarr...

類模板 模板類

下面定義的是類模板,用int例項化t後成為模板類。例項化類模板的語法 類名 模板實參表 結合下例即 array就是將類模板array例項化為模板類的語法。類模板 include using namespace std templateclass array array t operator int ...