什么是嵌套附属名称
什么是嵌套从属名称
如何能看出C::const_iterator是嵌套
------解决方案--------------------
骚年,::是作用域操作符,常用于namespace::fun()、namespace::class、namespace::data,以及class::fun、data、class(这里必须是public static的fun,class,data),这里说的class是广义的,包括struct和enum。
你说的怎么看出来C::const_iterator是嵌套,这样考虑:
首先template<typename C>已经告诉我们C是一个类型,不是namespace,这一点从const C& container用C指定了container的类型也可以看出;
其次,C::const_iterator iter(container.begin());是定义了一个变量(用container.begin()初始化),所以C::const_iterator必然也是一个类型,class::fun和class::data都不是类型,不能声明或定义变量,只有class::class是一个类型,可以定义变量,所以C::const_iterator是嵌套class,nested class
如何能看出C::const_iterator是嵌套
template<typename C>
void print2nd(const C& container)
{
if (container.size() >= 2)
{
C::const_iterator iter(container.begin());
++iter;
int value = *iter;
std::cout << value;
}
}
c++
------解决方案--------------------
骚年,::是作用域操作符,常用于namespace::fun()、namespace::class、namespace::data,以及class::fun、data、class(这里必须是public static的fun,class,data),这里说的class是广义的,包括struct和enum。
你说的怎么看出来C::const_iterator是嵌套,这样考虑:
首先template<typename C>已经告诉我们C是一个类型,不是namespace,这一点从const C& container用C指定了container的类型也可以看出;
其次,C::const_iterator iter(container.begin());是定义了一个变量(用container.begin()初始化),所以C::const_iterator必然也是一个类型,class::fun和class::data都不是类型,不能声明或定义变量,只有class::class是一个类型,可以定义变量,所以C::const_iterator是嵌套class,nested class