————————— 第二章 —————————

1.(P11)

C++规定:除了以typename修饰外,template内的任何标志符号都被视为一个值(value)而非一个型别。

eg.

template <class T> 
class MyClass{ 
    typename T::SubType *ptr; 
};

这里typename指出SubType是class T中定义的一个型别,因此ptr是一个指向T::SubType的指针,否则SubType会被当作一个static成员,于是:

T::SubType *ptr被认为是SubType与ptr的乘积。

2.(P12)

template class 的 member template问题:

下面例子,即使两个型别之间可以自动转换,如int和double,如果我们对assign()使用不同的template型别,也会出错。

template <class T> 
class MyClass{ 
private: 
    T value; 
public: 
    void assign(cosnt MyClass<T>& x) 
    { 
        // x must have same type as *this 
        value = x.value; 
    } 
    ... 
};

再看这个:

template <class T> 
class MyClass{ 
private: 
    T value; 
public: 
    template <class X>  // member template 
    void assign(cosnt MyClass<X>& x) 
    { 
        // allows different template types 
        value = x.getValue(); 
    } 
    T getValue() const{ 
        return value; 
    } 
    ... 
};

现在,assign()的参数x和*this的型别并不相同,所以两个类也就不同
不能再直接存取MyClass<>的private成员和 protected成员,取而代之,
此例中使用了getValue()

3.(P14)

对基本型别的显示初始化

如果采用不含参数、明确的constructor调用语法,基本型别会被初始为

eg.

int i1;   // undefined value
int i2 = int();   // initialized with zero

4.(P16)

异常问题。

①.异常处理不是错误处理

②.  void f() throw(xxx) 是f()抛出XXX类型的异常,

而void f() throw()  是指f()抛出任何异常,这里好多人容易弄错。

5.(P16)

命名空间。

eg.

namespace tankywoo{ 
    class A; 
    class B; 
    ... 

...

则using tankywoo::A会使A成为当前作用域内代表tankywoo::A的同义字

而using namespace tankywoo会使namespace内的所有名字曝光(A和B)。

————————— 第三章 —————————

6.(P23)

命名空间
上一篇也讲过。
使用C++标准程序库的任何标识符时,有三种选择:(以下都以cout为例)
①直接指定标识符:

std::cout << "Tanky Woo" << std::endl;

②使用using declaration,可使我们不再需要加上”std::”

   using std::cout;
   cout << "Tanky Woo" << std::endl;

③使用using directive,那么std内定义的所有标识符都有效。

  using namespace std;
  cout << "Tanky Woo" << endl;

7.错误处理和异常处理
异常处理这块接触的少,而且第三章这里也是简略的讲到,所以这里先放着,有经验了再补。

8.配置器(Allocators)
同上。

转载于:https://www.cnblogs.com/tanky_woo/archive/2011/01/23/1942611.html

《C++标准程序库》学习笔记1--第二章第三章相关推荐

  1. R语言学习笔记——入门篇:第三章-图形初阶

    R语言 R语言学习笔记--入门篇:第三章-图形初阶 文章目录 R语言 一.使用图形 1.1.基础绘图函数:plot( ) 1.2.图形控制函数:dev( ) 补充--直方图函数:hist( ) 补充- ...

  2. 机器人学中的状态估计学习笔记(二)第三章线性高斯系统的状态估计

    机器人学中的状态估计学习笔记(二)第三章线性高斯系统的状态估计 3.1 离散时间的批量估计问题 3.1.1 问题定义 3.1.2 最大后验估计 3.1.3 贝叶斯推断 3.1.4 存在性.唯一性与能观 ...

  3. MYSQL学习笔记(自用)第三章

    第三章 第一节. 列属性| Column Attributes[插入,更新和删除数据] ## VARCHAR(50) = 字符串 (最多50个) ## PK = primary key(主键) ## ...

  4. 【Python学习笔记—保姆版】第三章—Python流程控制、函数的定义、常见错误、模块与包、类

    第三章-python函数.分支结构 流程控制 if-else for 循环 while循环 continue/break range()函数 列表与元组遍历 练习 函数的定义 变量作用域 基本形式 函 ...

  5. 【学习笔记】数据库系统原理 第三章 SQL语言

    以下内容为参考课件和<数据库系统概论>(第5版,王珊等著)的个人整理,若有错误欢迎指出 第三章 SQL语言 文章目录 第三章 SQL语言 一.概述 二.数据查询功能 1.查询语句 2.连接 ...

  6. js 红宝书学习笔记精简版 第一至三章

    注: 本文js代码均已在本地实现过,如有异常问题,请在评论区留言.ctrl+f 可搜索有效内容, 加粗为重点 蓝色字体 为重中之重 (一) 什么是js 1995 年,JavaScript 问世. 完整 ...

  7. 机器学习理论《统计学习方法》学习笔记:第二章 感知机

    <统计学习方法>学习笔记:第二章 感知机 2 感知机 2.1 感知机模型 2.2 感知机学习策略 2.2.1 数据的线性可分性 2.2.2 感知机学习策略 2.3 感知机学习算法 2.3. ...

  8. 计算机网络学习笔记:第二章

    文章目录 计算机网络学习笔记:第二章 前言 2.1.应用层协议原理 2.1.1 网络应用程序体系结构 2.1.2 进程通信 2.1.3 可供应用程序使用的运输服务 2.1.4 因特网提供的传输层服务 ...

  9. 《python基础教程(第二版)》学习笔记 基础部分(第1章)

    <python基础教程(第二版)>学习笔记 基础部分(第1章) python常用的IDE: Windows: IDLE(gui), Eclipse+PyDev; Python(comman ...

  10. 2021-08-31《内网安全攻防》学习笔记,第二章-域内信息收集(转自PowerLiu)

    <内网安全攻防>学习笔记,第二章-域内信息收集 2020-07-212020-07-21 15:08:47阅读 1.1K0 2.1 内网信息搜集概述 当渗透测试人员进入内网后,面对的是一片 ...

最新文章

  1. SpringSecurity使用 配置文件 和wen.xml 文件配置
  2. ubuntu安装mysql依赖关系_ubuntu 安装mysql问题
  3. curl提示不支持https协议解决方法
  4. 集成算法中的Bagging
  5. iphone微信美颜插件_iOS13.5 插件分享
  6. C#进阶系列——一步一步封装自己的HtmlHelper组件:BootstrapHelper(三:附源码)...
  7. vue项目没有router文件夹_Vue路由(vue-router)配置实战——动态路由,重定向,工程非根目录...
  8. 用简单直白的方式讲解A星寻路算法原理
  9. 【BAPC 2017】Hoarse Horses【欧拉平面图公式】
  10. 键盘表和ASCII码表
  11. 你的薪水增速跑赢GDP了没
  12. 所有计算机都可以安装win7,t570都可以装win7系统吗_win7 64位系统所有电脑都能装吗...
  13. net_device详解
  14. text-overflow属性的使用
  15. SAP Hybris培训-标准课程/企业内训
  16. 【陈秀秀往事】---一个战痘8年成功的感人故事!
  17. 正向代理与反向代理是什么,有什么区别?
  18. Freeswitch 默认配置
  19. ACM模板 | 学习笔记 数学相关
  20. mysql给定一段日期,获取日期范围内的每一天

热门文章

  1. TCP/IP网络编程之基于TCP的服务端/客户端(二)
  2. NGINX原理 之 SLAB分配机制(转)
  3. 个人学习进度(第十六周)
  4. 【CSS 技能提升】 :before和:after的使用
  5. ionic+AnjularJs实现省市县三级联动效果
  6. spring+log4j
  7. paip.提升效率---提升绑定层次--form绑定取代field绑定
  8. 【引用】内网安全数据保密技术分析与比较
  9. Delphi获取默认打印机名称及端口
  10. tensorflow 安装在Anaconda