C2143具有嵌套的模板类
|
嗨,我在重新定义模板方面有些疑问。
请查看以下代码段。
template<class T_Type1>
class CSmall
{
public:
class Const_Itr
{
T_Type1 Outer_A;
};
private:
T_Type1 Inner_A;
};
template<class T_Type>
class CBig
{
public:
CSmall<T_Type>::Const_Itr* obj1;//ERROR C2143: syntax error : missing \';\' before \'*\'
typename CSmall<T_Type>::Const_Itr* obj2;// NO error after using \'typename\' keyword
}; // CIPPortExpectationHandler
void main()
{
CSmall<int>::Const_Itr* obj3;// NO error even if \'typename\' keyword in NOT used.
}
有人可以解释一下我吗
为什么\'obj1 \'的声明给出错误。
在声明\'obj2 \'时,typename如何解决此问题。编译器获取什么信息
为什么在main()中声明\'obj3 \'时不使用类型名。
注意:片段基于VC ++ 8.0
提前致谢
没有找到相关结果
已邀请:
2 个回复
财沟项胶
是类型还是变量,编译器不知道。因此,您应该提供一些帮助。
显然是一种类型。
师埠女
关键字用于什么?