模板類和init我有一個模板類,富:C++中的構造函數
template <class A, class B>
class Foo
{
public:
Foo(A &aInstance);
private:
Attr<Foo> _attr;
};
然後我還有一個叫的Attr模板類,這是我的Foo類的屬性,這需要作爲模板參數Foo類本身。
template <class C>
class Attr
{
class SomeType
{
SomeType();
~SomeType();
};
Attr(const SomeType* st);
~Attr();
private:
Attr();
}
我想在構造函數中初始化_attr(屬性類型爲Attr),將第一個參數從模板中轉換爲SomeType。
富構造實施:
template<class A, class B>
Foo<A, B>::Foo(A &aInstance):
_attr(
(Attr<Foo<A, B> >::SomeType *) aInstance)
{
}
這不會編譯:
錯誤:預期主表達式之前「)」令牌
該錯誤是指鑄造線在富構造器實現,就好像SomeType不被識別一樣。
我現在有一個實例,但仍然有相同的錯誤。
我已經回滾了您的上次編輯,因爲它使問題(及其答案)變得荒謬。請不要這樣做。至於其他編輯:這些*也*干擾現有的答案;我沒有把它們回滾,但請將來*增加*進一步澄清,不要更改現有的代碼。 –