zoukankan      html  css  js  c++  java
  • Effective C++ .44 typename和class的不同

    在C++模板中的类型参数一般可以使用typename和class,两者没有什么不同。但是typename比class多项功能:

    “任何时候当你想要在template中指涉一个嵌套从属类型名称,就必须在其前面加上关键字typename”

    因为C++默认情况下把属性都作为值来看待而不是类型。

    #include <iostream>
    #include <cstdlib>
    
    class Integer {
    public:
        typedef int value_type;
    };
    
    class Double {
    public:
        typedef double value_type;
    };
    
    template<class DataType>
    class Storage {
    public:
        typename DataType::value_type data;
    };
    
    int main() {
        Storage<Integer> s;
        
        s.data = 3.4/2;
        
        std::cout<<s.data<<std::endl;
        
        return 0;
    }
  • 相关阅读:
    2.6
    zuoye
    练习1
    练习
    练习
    4
    3
    2
    1
    1.3
  • 原文地址:https://www.cnblogs.com/lailailai/p/4180097.html
Copyright © 2011-2022 走看看