首页 > 代码库 > Effective C++ .44 typename和class的不同
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;}
Effective C++ .44 typename和class的不同
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。