C 複習筆記(五)主要是模板部分

2021-09-16 13:46:59 字數 2129 閱讀 4019

1.函式模板:

template void myswap(t &a,t&b) 

//函式模板呼叫

void main()

//函式模板作為函式引數

templateint mysort(t1 *array,t2 size);

void main();

int size =sizeof(myarray)/sizeof(*myarray);

mysort(myarray,size);

}int mysort(t1 *array,t2 size)

for(t2 i=0;i類模板:

 類模板用於實現類所需資料的型別引數化

 類模板在表示如陣列、表、圖等資料結構顯得特別重要,

這些資料結構的表示和演算法不受所包含的元素型別的影響

繼承中的類模板語法:

主要注意class b :public a

以及b(int a,double x):a(a)所有的類模板函式寫在類的外部,在乙個cpp中

//建構函式 沒有問題

//普通函式 沒有問題

//友元函式:用友元函式過載 << >>

// friend ostream& operator<< (ostream &out, complex &c3) ;

//友元函式:友元函式不是實現函式過載(非 << >>)

//1)需要在類前增加 類的前置宣告 函式的前置宣告

templateclass complex;

templatecomplexmysub(complex&c1, complex&c2);

//2)類的內部宣告 必須寫成:

friend complexmysub (complex&c1, complex&c2);
//3)友元函式實現 必須寫成:

template

complex mysub(complex &c1, complex &c2)

//4)友元函式呼叫 必須寫成

complex c4 = mysub(c1, c2);

cout類模板中的static關鍵字

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

需求設計:

類模板 建構函式 拷貝建構函式 << 過載=操作符

template class myvector()

template myvector::myvector(int size)

template myvector::myvector(const myvector &obj)

}myvector:: &operator(int index)

myvector:: myvecto &operator=(const myvector &obj)

m_len=obj.len;

m_space=new t[m_len];

for(int i=0;i&obj)

teacher(const teacher & obj)

~teacher()

}public:

friend ostream &operator<

teacher &operator=(const teacher &obj)

m_p=new char [strlen(obj.m_p)+1];

strcpy(m_p,obj.m_p);

return *this;

}private:

int age;

char *pname;

}

vuex 複習這個主要是對映不同寫法複習

這個原理到是不難,就是統一的狀態管理,和可控的操作預期,更加便於管理和維護 我自己畫了個圖,大家一看就明白,說白了,就必須這麼轉,這麼轉便於維護,再大的專案也這樣轉,跟太極一樣,就這麼 轉啊轉!今天我要複習的是,getters 這個 我不經常用,所以陌生了,所以寫個 在這篇例子中,由於沒有分模組,所...

C 複習筆記(五) 多型

多型,可分為靜態多型和動態多型。靜態多型,就是表現在靜態聯編上,即編譯時的多型,如汎型程式設計,函式過載都屬於靜態聯編。動態多型,就是表現在執行時的多型,在程式執行時,才決定呼叫什麼函式,通過虛函式來實現,換句話說,就是實現 乙個介面,多種方法 本文的多型主要指動態多型。多型實現條件 實現條件有3個...

C語言輸出(主要是printf函式)

在c語言中,有三個函式可以用來在顯示器上輸出資料,它們分別是 puts 只能輸出字串,並且輸出結束後自動換行。putchar 只能輸出單個字元。printf 可以輸出各種型別的資料。printf 是其中最靈活 最複雜 最常用的輸出函式,它通過格式控制符對輸出進行格式控制,它的部分格式控制符如下 pr...