模板类和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不被识别一样。
我现在有一个实例,但仍然有相同的错误。
我已经回滚了您的上次编辑,因为它使问题(及其答案)变得荒谬。请不要这样做。至于其他编辑:这些*也*干扰现有的答案;我没有把它们回滚,但请将来*增加*进一步澄清,不要更改现有的代码。 –