2017-5-21.22 C++primer笔记~

c++primer笔记

  • 加入光荣的进化吧

第六章! 函数

  • 将函数指定为(内联函数 inline),将它在每个调用点上【内联的展开】,该说明只是向编译器发出一个请求,编译器可以选择忽略这个请求。

    • 内联的机制用于优化规模较小,流程直接,频繁调用的函数。
  • constexpr函数是指能用于常量表达式的函数,函数的返回值类星和所有形参的类型必须是‘字面值类型’: 算数、引用、指针。 并且函数体内有且只有一条return语句。

  • 将较小的操作,如比较两个字符串大小定义为函数,可以便于理解~;
  • inline函数和constexpr函数可以在函数中多次定义,但通常定义在==头文件==中!

调试帮助:

  • assert and NEDBUG

  • assert预处理宏

    • 预处理宏:就是一个预处理变量,行为类似内联函数。
    • assert(expr); 对expr求值,若为假(0),则输出信息并终止程序。若为真(非0),则什么也不做。

    • 定义在 cassert头文件中。

    • assert 依赖一个名为NDEBUG的预处理变量的状态。 如果定义了NDEBUG,则assert什么也不做。默认状态下,NDEBUG未定义,此时assert将执行运行时检查。
    • 除了用于assert外,NDEBUG也可以用来编写自己的条件调试代码,如果NDEBUG未定义,将执行#ifndef和#endif之间的代码,如果定义了,则忽略这些代码。
    • C++编译器定义的调试有用的名字:

      _ func _ :一个静态数组,存放函数的名字
      _ FILE _ :存放文件名的字符串字面值
      _ LINE _ :存放当前行号的整形字面值
      _ TIME _ :存放文件编译时间的字符串字面值
      _ DATE _ :存放文件编译日期的字符串字面值

  • 函数匹配 : 重载函数调用时的选择

    • 确定候选函数和可行函数

    • 寻找最佳匹配

    • 含有多个形参的函数匹配
    • 候选函数:函数匹配的第一步是选定本次调用的重载函数集,集合中的函数被称为候选函数
    • 可行函数:根据实参情况,从候选函数中挑选出能被这实参调用的函数,此次选出的函数被称为可行函数。
  • 函数指针

    • 函数指针指向的是函数并非对象。想要声明一个指向函数的指针只要用指针替代函数名即可

    • 当我们把函数名当作一个值使用时,函数自动的转换为指针,直接赋予或者取址皆可。可以直接使用只想该函数的指针调用该函数。

    • …内容较复杂 日后再看!

第七章 类!

  • 类的基本思想是【数据抽象data abstraction】和【封装encapsulation】.

    • 数据抽象是一种依赖【接口interface】和【实现implementation】分离的编程技术。

      • 类的接口包括用户所能执行的操作。
      • 类的实现包括类的数据成员、负责接口实现的函数体以及定义类所需的各种私有函数
    • 封装实现了类的接口和实现的分离。 封装后的类隐藏了他的实现细节。 类用户只能使用接口而无法访问实现部分。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值