• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > c++中typename和class的区别介绍

c++中typename和class的区别介绍

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++ typename,typename class,typename,template typename t,typename是什么意思等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

相信学习C++的人对class这个关键字都非常明白,class用于定义类。在模板引入c++后,最初定义模板的方法为: template<class T>......

在这里class关键字表明T是一个类型,后来为了避免class在这两个地方的使用可能给人带来混淆,所以引入了typename这个关键字。它的作用同
class一样表明后面的符号为一个类型,这样在定义模板的时候就可以使用下面的方式了: template<typename T>......

在模板定义语法中关键字class与typename的作用完全一样。

typename难道仅仅在模板定义中起作用吗?其实不是这样,typename另外一个作用为:使用嵌套依赖类型(nested depended name),如下所示:

template<class T>
void MyMethod( T myarr )
{
    typedef typename T::LengthType LengthType;
    LengthType length = myarr.GetLength;
}
</div>
这个时候typename的作用就是告诉c++编译器,typename后面的字符串为一个类型名称,而不是成员函数或者成员变量,这个时候如果前面没有typename,编译器没有任何办法知道T::LengthType是一个类型还是一个成员名称(静态数据成员或者静态函数),所以编译不能够通过。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C++的template模板中class与typename关键字的区别分析
  • 详解C++的模板中typename关键字的用法
  • C++关键字typename的深入理解
  • c++中typename和class的区别介绍

相关文章

  • 2017-05-28关于移位操作的一点重要说明
  • 2017-05-28VS2013安装配置和使用Boost库教程
  • 2017-05-28华为机试题之统计单词个数实例代码
  • 2017-05-28C/C++的浮点数在内存中的存储方式分析及实例
  • 2017-05-28C语言实现的统计php代码行数功能源码(支持文件夹、多目录)
  • 2017-05-28C语言开发之归并排序详解及实例
  • 2017-05-28MFC设置对话框焦点的方法简述
  • 2017-05-28C语言数据结构中二分查找递归非递归实现并分析
  • 2017-05-28C语言实现顺序表基本操作汇总
  • 2017-05-28C语言将24小时制转换为12小时制的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C语言 数与串之间转换的方法
    • 求子数组最大和的解决方法详解
    • C++实现图形界面时钟表盘代码
    • c++基础语法:构造函数与析构函数
    • do...while(0)的妙用详细解析
    • stl常用算法(Algorithms)介绍(stl排序算法、非变序型队列)
    • MFC程序设计常用技巧汇总
    • C语言小程序 计算第二天日期示例代码
    • 深入解析C++程序中激发事件和COM中的事件处理
    • C++设计模式之抽象工厂模式

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有