讓自定義的型別可以和任意的型別之間轉換

2021-04-16 05:31:11 字數 419 閱讀 9097

定義如下的乙個類

struct cls

template

< typename t>

cls(const t&)

cls(){} };

現在這個類可以和其它的任意的型別之間進行轉換了。

測試如下

void test()

但是現在這種轉換是沒有意義的。要想使這種轉換有意義,我們只需特化它的一些轉換方法就行了。例如做如下的特化。

template

<>

cls::cls(const

int& a)

template

<>

cls::operator

int()

通過特化可以在不改變類定義的情況下。為定義的類新增恰當的轉型操作,使這種轉換成為乙個有意義的轉換。

讓自定義的型別可以和任意的型別之間轉換

定義如下的乙個類 struct cls template typename t cls const t cls 現在這個類可以和其它的任意的型別之間進行轉換了。測試如下 void test 但是現在這種轉換是沒有意義的。要想使這種轉換有意義,我們只需特化它的一些轉換方法就行了。例如做如下的特化。te...

自定義型別

typedef型別 typedef 已有型別 新建型別 示例 typedef double area,volume typedef int number number i1 area a enum enum 列舉型別名 enum week 預設sun 0,可以比較 如果修改必須形如enum week...

自定義型別

下面列舉幾種c語言中常用的自定義資料型別 1.結構體型別 當描述乙個整型變數時,可以用int,描述字元型變數時,可以用char,但要描述乙個學生時,因為這個學生包含的資訊很多,比如姓名,性別,年齡等,不能通過單一的型別來描述,所以,這裡引入結構體型別,將某個事物的共有屬性集合在一起,宣告乙個結構體型...