C 中template如何判斷型別

2021-05-22 20:08:17 字數 1031 閱讀 6969

在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得到兩個整數中的大者和小者。...