[英]Creating a pointer to a templated class
我知道如果使用基類,則可以有效地創建指向模板化類的指針。 有更容易的方法嗎?
所以。 這是使用基類的示例
class A {}
template <class T>
class B : public A {}
現在,我可以創建B<T>
的實例,並使用基類A
指向它。 有更容易的方法嗎? 更直接的方法? 一個不涉及創建“虛擬”基類的類。
模板的不同實例(例如B<int>
和B<char>
)是完全獨立的類型,就像int
和char
是獨立的類型一樣。 除非您從同一基類派生這兩個對象,否則就不能有一個指向任何一種對象的指針,如您的示例所示。 就像您無法擁有一個指向int
或char
指針變量一樣。
但是,如果只希望指針指向單個特定類型,則只需聲明B<int> *
或B<char> *
類型的指針。 您不需要為此的基類A
當然,可以將單個特定類型指定為其他模板的參數。 例如,您可能有一個模板類C<T>
,它包含類型B<T> *
的指針,因此C<int>
將具有B<int> *
成員,而C<char>
將具有一個B B<char> *
成員。 再一次,您不需要A
基類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.