美文网首页
Boolan——C++面向对象高级编程(下)第一周

Boolan——C++面向对象高级编程(下)第一周

作者: 091d4be0476b | 来源:发表于2017-05-11 23:30 被阅读0次

    勿在浮沙筑高台!!!!!!!!!!!

    C++(下)主要谈及对象模型;即泛型编程

    effective modern C++

    一.转换函数

    (1)转换函数的一般方法:

    重载该操作符,注意最好带const限定符

    编译器首先寻找针对f类型的“+”运算符的重载,如果没有就考虑类型转化函数

    (2)non-explicit-one-argument ctor

    多个参数,但只传入一个实参

    将int型转化为Fraction型。

    (3)explicit-one-argument

    (1)和(2)同可以实现不同类型相加产生的类型转换,但是如果合并于同一个类中,则容易产生错误。如下:

    因此explicit-one-argument

    加入关键字explict(只用于构造函数之前)则该构造函数不会进行强制类型转换

    二.关于智能指针

    所产生的对象像一个指针

    (1)对传入的原指针的一种包装

    尤其注意符号“->”会一直作用于一个类,知道找到需要找的类变量或者类函数。

    (2)迭代器——另一类型的智能指针

    三.函数对象(仿函数)

    任何一个能接受操作符“()”的东西,如类等。。。

    (1)标准库中的仿函数都会继承base class如下:

    其本身的类如下:

    四.namespace

    五.类模板

    1.使用时需要指定参数类型

    六.函数模板

    1.使用时不用制定参数类型

    七.成员模板

    (1)

    其用途为:

    主要用于父类子类关系转换导致的赋值,即符合函数的类型转换。

    (2)向上类型转换

    八.模板特化

    以下为模板的泛化

    但是加入以下代码之后便成为模板的特化,根据不同的key执行不同的函数

    九.模板的偏特化

    (1)个数上的偏

    两个模板参数,但可以从左到右绑定一定数量的参数

    (2)范围上的偏

    指针与非指针调用不同的模板,指针调用特化模板,非指针调用泛化模板

    十.模板模板参数

    用处:

    但因为List的模板参数不止一个,所以错误,当第二个模板只有一个模板参数时成立。

    相关文章

      网友评论

          本文标题:Boolan——C++面向对象高级编程(下)第一周

          本文链接:https://www.haomeiwen.com/subject/rxbatxtx.html