c 實現任意型別陣列類的封裝

2021-09-25 15:19:25 字數 1485 閱讀 3351

myarray.hpp

#pragma once

#include#includeusing namespace std;

templateclass myarray

myarray(const myarray &array) }

~myarray() }

//賦值操作符過載 防止淺拷貝

myarray & operator = (myarray & array)

this->m_capacity = array.m_capacity;

this->m_size = array.m_size;

this->paddress = new t[this->m_capacity];

for (int i = 0; i < m_size; i++)

}//過載

/*myarray arr(10)

arr[0] = 100;*/

t & operator (int index)

//尾插法

void push_back(t val)

//獲取大小

int getsize()

//獲取容量

int getcapacity()

private:

t * paddress; //指向堆區指標

int m_capacity; //容量

int m_size;

};

test.cpp

#include"myarray.hpp"

#include#includeusing namespace std;

//輸出int 型別陣列

void printintarray(myarray&array)

}class person

person(string name, int age)

string m_name;

int m_age;

};//輸出person型別的陣列

void printpersonarray(myarray&array)

}int main()

printintarray(arr);

person p1("mt", 10);

person p2("呆賊", 12);

person p3("傻饃", 13);

person p4("劣人", 14);

myarrayarr2(10);

arr2.push_back(p1);

arr2.push_back(p2);

arr2.push_back(p3);

arr2.push_back(p4);

printpersonarray(arr2);

system("pause");

return 0;

}

C語言如何實現任意數相乘

基本思路 用int型陣列num的某一位乘以另外乙個int陣列num1的所有位,然後將值暫時放在int型陣列num2,陣列num從第零位開始乘,直到最後一位,每移動一位,陣列num2裡面的資料更新一次。任意兩個小於100位數相乘,修改max值可實現更大的數相乘 include include defi...

C 實現任意進製的相互轉換

進製轉換是計算機內部時時刻刻都在進行活動,本篇文章也是進製轉換的演算法介紹,不過不同的是我想利用ascll編碼實現2到61之間任意進製的相互轉換,更大進製的表示方法只不過是十六進製制表示方法的延伸 用字母a到z表示整數10到35,字母a到z表示整數36到61。這樣就可以表示2到61之間的任意進製啦,...

C 實現任意進製的相互轉換

進製轉換是計算機內部時時刻刻都在進行活動,本篇文章也是進製轉換的演算法介紹,不過不同的是我想利用ascll編碼實現2到61之間任意進製的相互轉換,更大進製的表示方法只不過是十六進製制表示方法的延伸 用字母a到z表示整數10到35,字母a到z表示整數36到61。這樣就可以表示2到61之間的任意進製啦,...