第九天之類模板在專案開發中的應用案例 陣列模板類

2021-09-29 18:44:57 字數 2176 閱讀 8318

類模板小結

模板是 c++型別引數化的多型工具。c++提供函式模板和類模板。

模板定義以模板說明開始。類屬引數必須在模板定義中至少出現一次。

同乙個類屬引數可以用於多個模板。

類屬引數可用於函式的引數型別、返回型別和宣告函式中的變數。

模板由編譯器根據實際資料型別例項化,生成可執行**。例項化的函式。

模板稱為模板函式;例項化的類模板稱為模板類。

函式模板可以用多種方式過載。

類模板可以在類層次中使用 。

訓練題

1) 請設計乙個陣列模板類( myvector ),完成對int、char、teacher型別元素的管理。

myvector.h

#pragma once

#include

using

namespace std;

template

<

typename t>

class

myvector

public

: t&

operator

(int index)

; myvector&

operator=(

const myvector& obj)

;private

: t *m_space;

int m_len;

};

myvector.cpp

#include

"myvector.h"

#include

using

namespace std;

template

<

typename t>

ostream&

operator

<<

(ostream& out,

const myvector

& obj)

out << endl;

return out;

}template

<

typename t>

myvector

::myvector

(int size =0)

//建構函式

//myvectormyvl2 = myvl;

template

<

typename t>

myvector

::myvector

(const myvector &obj)

//拷貝建構函式

}template

<

typename t>

myvector::~

myvector()

//析構函式

}template

<

typename t>

t& myvector

::operator

(int index)

//a1 = a2

template

<

typename t>

myvector

& myvector

::operator=(

const myvector& obj)

m_len = obj.m_len;

//再根據a2分配新記憶體

m_space =

new t[m_len]

;return

*this

;}

myvector_test.cpp

#include

"myvector.cpp"

#include

using

namespace std;

void

main()

cout << endl;

myvector<

int> myvl2 = myvl;

for(

int i =

0; i < myvl2.

getlen()

; i++

) cout << endl;

cout << myvl2 << endl;

system

("pause");

}

在HCIA學習的第九天

1 實現訪問控制 2 抓取感興趣流量供其他技術呼叫 讓路由器對收到的流量基於表中規則執行動作 允許 拒絕 至上而下按照順序依次匹配,一旦匹配中流量,則不再檢視下一條。基本acl 因為只能識別源ip,所以為了避免誤刪,呼叫時盡量靠近要求中的目標 r2 acl integer 2000 2999 bas...

學習的第九天

如題,又是安裝的一天 又到了熟悉的連線環節,至於為什麼每次使用centos7虛擬機器都要進行這看似不必要的部分。原因當然是為了之後更方便。要知道centos7系統 圖形化除外 中是不可以進行複製貼上的,但要在centos7中執行各種命令都是要輸入長長指令,而作為我這種菜鳥,肯定不能盲打,but看一眼...

學習linux的第九天

磁碟分好區以後,但暫時還不能用,我們必須對每個分割槽進行格式化才可使用。所謂格式化,就是安裝檔案系統。格式化的命令為 mke2fs 常用選項如下 t 用來指定檔案系統的型別。b 表示分割槽是設定每個資料區快占用的空間大小。目前,每個資料塊支援1024b.2018b.4096b i 表示設定inode...