zoukankan      html  css  js  c++  java
  • typedef typename 的作用

    例如下面的代码:

    typedef typename std::vector<T>::size_type size_type;
    

    查看 vector 源码可以看到:

    template <class T,class Alloc=alloc>
    class vector{
    public:
        //...
        typedef size_t size_type;
        //...
    };
    

    vector::size_typevector 的嵌套类型定义,其实际等价于 size_t 类型。
    但是,模板类型在实例化之前,编译器并不知道 vector<T>::size_type 为何物,事实上一共有三种可能:

    • 静态数据成员
    • 静态成员函数
    • 嵌套类型
      使用 typename 可以明确其后面是一个类型。
  • 相关阅读:
    shift
    start
    exit
    call
    goto
    Activity生命周期(二)
    color 和 mode
    pause 和 title
    day 4 飞机大战-面向对象
    day 3 创建窗口,移动-函数版
  • 原文地址:https://www.cnblogs.com/xiaojianliu/p/13463529.html
Copyright © 2011-2022 走看看