類模板小結
模板是 c++型別引數化的多型工具。c++提供函式模板和類模板。
模板定義以模板說明開始。類屬引數必須在模板定義中至少出現一次。
同乙個類屬引數可以用於多個模板。
類屬引數可用於函式的引數型別、返回型別和宣告函式中的變數。
模板由編譯器根據實際資料型別例項化,生成可執行**。例項化的函式。
模板稱為模板函式;例項化的類模板稱為模板類。
函式模板可以用多種方式過載。
類模板可以在類層次中使用 。
訓練題
1) 請設計乙個陣列模板類( myvector ),完成對int、char、teacher型別元素的管理。
myvector.h
myvector.cpp#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_test.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
;}
#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...