2016-11-06 57 views
-1

最近我發現了一種用C++預定義類的智能快捷方式。通常情況下創造了一些複雜的結構,我會寫:C++在類中使用未定義的模板

class A; 
class B{ 
    A *a; 
}; 
... 
class A{ 

}; 

現在,由於快捷方式,我寫:

class B{ 
    class A *a; 
}; 
class A{ 

}; 

我的問題 - 我怎樣才能使一個簡短的定義等同於這種形式:

template<typename T> class A; 
class B{ 
    typename typedef A<class T> a; 
}; 

回答

1

簡單的答案是,你不能。對常規類使用詳細的類型說明符通過隱式地向前聲明它將名稱引入封閉名稱空間。

模板沒有被定義爲表現相同的方式。

+0

好吧,我會等待不知道你不能的人:) –

+0

@CheshireCat,你可以自由閱讀C++標準。答案不會改變。 – StoryTeller

相關問題