C 中所有的typename都可以替換為class嗎

2021-04-19 08:29:19 字數 2582 閱讀 6593

1樓:匿名使用者

1,一般情況下typename和class可以互換。

2,但是當需要表示某識別符號是型別的時候用只能用typename而不能用class。

當要獲得類的成員型別時,必須用typename比如template

class myclass ;

有了typeanme,subtype就被當成了t中定義的乙個型別;

如果這裡沒有typename,subtype就會被當成乙個static member,而 * 就被當成乘法了。

2樓:飄雨

可以的,定義模板的時候它們是通用的

c++ template typename 和 class 可以混用嗎

3樓:姬暄文

但是,又有一些微妙的不同,因為有時候,你不得不使用typename.

1. 在宣告 template parameters(模板參版數)時,class 和 typename 是可互換的

權。2. 用 typename 去標識 nested dependent type names(巢狀依賴型別名),在 base class

lists(基類列表)中或在乙個 member initialization list(成員初始化列表)中作為乙個 base class

identifier(基類識別符號)時除外。

for example:

1 using namespace std;

2 3 template int vcount(vectorv) {

4     int i;

5     typename vector::iterator vi;

6     for(i=0,vi=v.begin(); vi!=v.end(); i++,vi++)

7     ;

8     return(i);

c++template中typename 和class有什麼區別

4樓:匿名使用者

又是歷史原因,以前是用class,後來c++ standard 出現後,引入了typename, 所以他們是一樣的。

但是,又有一些微妙的不同,因為有時候,你不得不使用typename.

1. 在宣告 template parameters(模板引數)時,class 和 typename 是可互換的。

2. 用 typename 去標識 nested dependent type names(巢狀依賴型別名),在 base class

lists(基類列表)中或在乙個 member initialization list(成員初始化列表)中作為乙個 base class

identifier(基類識別符號)時除外。

for example:

1 using namespace std;

2 3 template int vcount(vectorv)

c++template中typename 和class有什麼區別?

5樓:匿名使用者

實際上可以說沒有區別。

按 c++ 標準來說,template用於基礎資料型別,typename 指型別名,t 可以取 char int double 等。

template用於類,t 可以取任何類。

但是這裡有乙個問題,結構體應該用 typename 還是 class? 結構體肯定不是基礎資料型別,但也不是類。

所以實際情況是,template的 t 也可以取基礎資料型別,tempate的 t 也可以取類。

但有乙個特例,就是當 t 是乙個類,而這個類又有子類(假設名為 innerclass) 時,應該用 template:

typename t::innerclass myinnerobject;

這裡的 typename 告訴編譯器,t::innerclass 是乙個類,程式要宣告乙個 t::innerclass 類的物件,而不是宣告 t 的靜態成員,而 typename 如果換成 class 則語法錯誤。

以下這篇文章介紹得比較詳細:

c++中typename和class的區別介紹

6樓:老王談網際網路

相信學習c++的人對class這個關鍵字都非常明白,class用於定義類。在

模板引入c++後,最初定義模內板的方容法為: template......

在這裡class關鍵字表明t是乙個型別,後來為了避免class在這兩個地方的使用可能給人帶來混淆,所以引入了typename這個關鍵字。它的作用同

class一樣表明後面的符號為乙個型別,這樣在定義模板的時候就可以使用下面的方式了: template......

在模板定義語法中關鍵字class與typename的作用完全一樣。

typename難道僅僅在模板定義中起作用嗎?其實不是這樣,typename另外乙個作用為:使用巢狀依賴型別(nested depended name),

宋朝宮中所有的職位

兩宋嬪御的名號沒有準則,比較紛紜雜亂。大致地說,初入宮時,女子的名號有 侍御 紅霞帔。再進一步,封君,封夫人。南宋改君為夫人。君和夫人在人數和郡名上沒有一定。夫人以後,再進便是才人 美人 婕妤,然後進為昭儀 昭容 修媛 修儀 修容 充媛 婉容 婉儀 順容 貴儀等。再進為妃一級 貴妃 賢妃 德妃 淑妃...

英文中所有的「包 包裹」

bag 包。可以用於,lunch bag,午餐包 bag pack 雙肩背的書包 message bag 單肩電腦包。purse 女士包統稱。handbag 女士手提包。hobo 女士大的單肩包。clutch 宴會用女式包。wrap 包裹。多指用布或者塑料膜包裹起來的的那層包裹外皮。package ...

《後宮甄嬛傳》中所有的嬪妃求甄嬛傳中所有妃子的名字配角也算

甄嬛 孫儷 孝聖憲皇后鈕鈷祿氏 皇后 蔡少芬 孝敬憲皇后烏喇那拉氏 華妃 蔣欣 敦肅皇貴妃年氏 沈眉莊 斕曦 惠妃 安陵容 陶昕然 鸝妃 端妃 李宜娟 純愨皇貴妃耿氏 敬妃 楊梓嫣 敬貴妃 齊妃 張雅萌 三阿哥生母 祺嬪 唐藝昕 麗嬪 李佳璇 曹默琴 陳思斯 襄嬪 溫宜公主生母 葉瀾依 熱依扎 寧嬪...