我知道一個typedef不能在C++中聲明,但我想知道什麼可能是最好的解決方案,以解決以下問題。我有一個聲明MyClass
這樣一個頭文件:正向聲明一個模板類的typedef
#include <TemplateClassHeaders>
struct MyStruct
{
// ...
}
typedef Really::Long::TemplateClassName<MyStruct> MyClass;
MyClass
在很多地方使用,但大多隻是作爲一個指針正在通過Qt的信號槽機制通過。前向聲明將是所有需要的,但由於MyClass
是一種不起作用的typedef。有沒有辦法避免將myclass.h添加到每個使用指向MyClass
的指針的頭?
'MyClass類;'谷歌,甚至看建議SO鏈接,當你輸入你的問題,應揭露http://stackoverflow.com/questions/804894/forward-declaration-of-a -typedef-in-c?rq = 1 – mah
@mah給予它第二個想法或至少讀取整個問題而不是自動降低它並指向類似的問題(沒有模板和模板參數)會告訴你'類MyClass'不起作用(即使沒有模板參與,也不會工作,因爲重新聲明)。 – jaho
@Marian,'class MyClass;'如果沒有模板參與,就可以工作。 –