模板c中的typedef++;类doen';在课堂外定义时不起作用? 我也尝试在模板C++中使用TyPulf,但它不起作用,我不知道如何修复它。 模板 类MyVector { 公众: typedef对象*iter; iter begin(); }; 样板 iter MyVector::begin()//问题出在这里 { }
你能告诉我为什么不行吗模板c中的typedef++;类doen';在课堂外定义时不起作用? 我也尝试在模板C++中使用TyPulf,但它不起作用,我不知道如何修复它。 模板 类MyVector { 公众: typedef对象*iter; iter begin(); }; 样板 iter MyVector::begin()//问题出在这里 { },c++,C++,你能告诉我为什么不行吗 iter在该上下文中没有任何意义,您需要明确限定它: template <typename object> typename MyVector<object>::iter MyVector<object>::begin() { } 模板 typename MyVector::iter MyVector::begin() { } 在C++11中,可以使用尾随返回类型: template <typename object>
iter
在该上下文中没有任何意义,您需要明确限定它:
template <typename object>
typename MyVector<object>::iter MyVector<object>::begin()
{
}
模板
typename MyVector::iter MyVector::begin()
{
}
在C++11中,可以使用尾随返回类型:
template <typename object>
auto MyVector<object>::begin() -> iter
{
}
模板
自动MyVector::begin()->iter
{
}
iter
在该上下文中没有任何意义,您需要明确限定它:
template <typename object>
typename MyVector<object>::iter MyVector<object>::begin()
{
}
模板
typename MyVector::iter MyVector::begin()
{
}
在C++11中,可以使用尾随返回类型:
template <typename object>
auto MyVector<object>::begin() -> iter
{
}
模板
自动MyVector::begin()->iter
{
}
因为编译器不知道当遇到令牌iter
时必须在MyVector
内搜索iter
。明确规定iter的范围,如:
template <typename object>
typename MyVector<object>::iter MyVector<object>::begin() //here is problem
{
}
模板
typename MyVector::iter MyVector::begin()//问题出在这里
{
}
因为编译器不知道当遇到令牌iter
时必须在MyVector
内搜索iter
。明确规定iter的范围,如:
template <typename object>
typename MyVector<object>::iter MyVector<object>::begin() //here is problem
{
}
模板
typename MyVector::iter MyVector::begin()//问题出在这里
{
}
尝试以下操作
template <typename object>
class MyVector
{
public:
typedef object* iter;
iter begin();
};
template <typename object>
typename MyVector<object>::iter MyVector<object>::begin() //here is problem
{
}
模板
类MyVector
{
公众:
typedef对象*iter;
iter begin();
};
样板
typename MyVector::iter MyVector::begin()//问题出在这里
{
}
Typenameiter
是类MyVector
的成员,您必须使用语法来访问类成员。尝试以下操作
template <typename object>
class MyVector
{
public:
typedef object* iter;
iter begin();
};
template <typename object>
typename MyVector<object>::iter MyVector<object>::begin() //here is problem
{
}
模板
类MyVector
{
公众:
typedef对象*iter;
iter begin();
};
样板
typename MyVector::iter MyVector::begin()//问题出在这里
{
}
Typename
iter
是类MyVector
的成员,您必须使用语法来访问类成员。iter
这与示例中的内部类型类似,对于主类之外的任何用法,您需要在其之前指定主类类型:
MyVector<object>::iter
MyVector::iter
iter
就像示例中的内部类型一样,对于主类之外的任何用法,您需要在其之前指定主类类型:
MyVector<object>::iter
MyVector::iter
如果它不起作用呢?如果它不起作用呢?您还需要typename
因为它是一个从属名称。您还需要typename
因为它是一个从属名称。