我經常看到,在他們的聲明的開頭CPP類都有這個書面typedef base_type data_type是什麼意思?
typedef base_type data_type
據我所知,這已經是與使你的類與載體相容。任何人都可以引導我?
使用谷歌搜索這也會給你數百個使用這個聲明的鏈接。
我經常看到,在他們的聲明的開頭CPP類都有這個書面typedef base_type data_type是什麼意思?
typedef base_type data_type
據我所知,這已經是與使你的類與載體相容。任何人都可以引導我?
使用谷歌搜索這也會給你數百個使用這個聲明的鏈接。
typedef typename Base<T>::Foo Foo
是用於模板編程的常用技術。
由於Base<T>
取決於模板參數T
,編譯器無法知道任何特定類型T
的Base
是專門讓Foo
不是一個類型(或存在的話)。
所以你必須告訴編譯器它應該假定Foo
是一個類型。
這是一個麻煩,是的。
但是,模板非常有用,所以它非常值得一點麻煩。 :)
上述以外,一個typedef
剛剛介紹的替代名稱與只從原始非常細微的差別。
例如,給出int x = 42;
陳述x.~int();
是無效的,但typedef int Int; x.~Int();
是確定的。
另一個細微的差別是構造函數和析構函數的定義,您必須使用原始類名稱。
在C++ 11可以在大致相同的方式使用作爲using
typedef
,例如using Int = int;
。
他們僅僅使用'data_type'類型而不是'base_type',這樣'base_type'仍然是「隱藏」 –
我想你在複製時丟失了'<…>'。 – kay
typedef用於定義類型別名。它允許你用你自己的數據類型名稱來定義數據類型。例如:typedef Char myChar – AkshayP