当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

<b>《深度摸索C++对象模子》读书笔记(7)</b>[VC/C++编程]

赞助商链接



  本文“<b>《深度摸索C++对象模子》读书笔记(7)</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

***Template的“具现”行为***

template class中的任何member都只能通过template class的某个实体来存取或操作.

Point<float>::Status s;  // ok
Point::Status s;  // error

假如我们定义一个指针,指向特定的实体,像这样:

Point<float> *ptr = 0;

由于这是一个指向class object的指针,本身并非一个class object,编译器不需求知道与该class有关的任何members数据.所以将“Point的一个float实体”具现也就没有必要.

假如不是一个pointer而是reference ,假定:

Point<float> &ref = 0;

这个定义的真正语领悟被扩 展为:

// 内部扩大
Point<float> temp(float(0));
Point<float> &ref = temp;

以上转化是因为reference并非无物(no object)的代名词,0被视作整数,必须被转换为范例Point<float>的一个对象.

但是, member functions只有在member functions被利用的时刻,C++ Standard才要求它们被“具现 ”出来.这个法则的由来主要有两个缘由:

(1)空间和效率的考虑.关于未利用的函数进 行“具现”将会耗费大量的时间和空间;

(2)还没有实现的功效.并非一个 template具现出来的全部范例一定可以完好支持一组member functions,因而只需具现真正需求的 member functions.

举个例子:

Point<float> *p = new Point<float>;

只有(a)Point template的float实例、(b)new 运算符、(c) default constructor需求被“具现”.

***Template的错误报告***

全部与类 型相关的查验,假如触及到template参数,都必须耽误到真正的具现操作发生.

关于下面的 template声明:

template <class T>
class Mumble
{
public:
Mumble(T t = 1024) : _t(t)
{
if(tt != t)
throw ex ex;
}
private:
T tt;
}

此中像“T t = 1024”、“tt != t”这样的潜在错误在template声明时并不会报告,而会在每个具现操作发生时被查抄出来并记录 之,后来果将因差别的实际范例而差别.

Mumble<int> mi;  // 上述两个潜在错 误都不存在
Mumble<int*> pmi;  // 由于不能将一个非零的整数常量指定给一个指针,故 “T t = 1024”错误


  以上是“<b>《深度摸索C++对象模子》读书笔记(7)</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .