在c++中,使用template,有時候可能會需要得到當前所使用的型別.
本文中使用兩種辦法來。
tt類為使用模板的類,
tt.h
#ifndef _tt_h
#define _tt_h
#include "stdio.h"
template
class tt{
public:
void printtype();
void printtype(t);
方法1:
template<>
void tt::printtype(){
printf("int/n");
template<>
void tt::printtype(){
printf("char/n");
template
void tt::printtype(){
printf("other type/n");
方法1結束。
方法2:
template
void tt::printtype(t t){//判斷t是不是int型別的
printf("%d/n",typeid(t).name() == typeid(1).name());
方法2結束。
#endif
main.c
#include "tt.h"
int main(){
ttt1;
ttt2;
ttt3;
t1.printtype();
t2.printtype();
t3.printtype();
int a = 1;
char b = 'b';
double c = 1.1;
t1.printtype(a);
t2.printtype(b);
t3.printtype(c);
return 0;
最後的結果為:
intchar
other type
C 中的 template 類使用
在c 中為了節省工作量,出現了一種模板類。可以多次重寫。1 在c template中很多地方都用到了typename與class這兩個關鍵字,而且好像可以替換,是不是這兩個關鍵字完全一樣呢?答 class用於定義類,在模板引入c 後,最初定義模板的方法為 template,這裡class關鍵字表明t...
C 類模板template
類模板 對於功能相同而資料型別不同的一些函式,可以定義乙個可對任何型別變數進行操作的函式模板,在呼叫函式時,系統會根據實參的型別,取代函式模板中的型別引數,得到具體的函式 includeusing namespace std template class compare numtype max nu...
C 類模板 template
類模板與函式模板的定義和使用類似。有時,有兩個或多個類,其功能是相同的,僅僅是資料型別不同,如下面語句宣告了乙個類 class compare int intmax intmin private int x,y 其作用是對兩個整數作比較,可以通過呼叫成員函式max和min得到兩個整數中的大者和小者。...