目录

空指针加强

auto自动类型


空指针加强

这里主要是0,NULL,nullptr之间的关系,在不同操作系统里面NULL的值是不一样的,所以,要尽量使用nullptr进行初始化。

如NULL在Windows中就是0

程序运行截图如下:

源码如下:

#include <iostream>
using namespace std;void test(int num){cout << "void test(int num) called!" << endl;
}void test(void *p){cout << "void test(void *p) called!" << endl;
}int main()
{void *p = NULL;test(p);test(NULL);test(nullptr);return 0;
}

auto自动类型

这里主要有以下几点:

1. auto自动类型;

2. auto与内部函数绑定机制;

3. 利用auto实现,回调函数在面向对象中的设计。

下面先来看第一点,程序运行截图如下:

这里如果用了g++等可能会出现简写,d为double,pd为double *

源码如下:

#include <iostream>
#include <typeinfo>
using namespace std;int main(int *argc, int *argv[]){double db = 3.14;double *pDB = &db;auto num = pDB;cout << typeid(db).name() << endl;cout << typeid(pDB).name() << endl;cout << typeid(num).name() << endl;getchar();return 0;
}

下面是auto与内部函数绑定,用auto实现,回调函数在面向对象中的设计,有一个新概念:

仿函数:创建一个函数指针,引用一个结构体或者一个类的内部公共函数。

程序运行截图如下:

源码如下:

#include <iostream>
#include <functional>
using namespace std;
using namespace std::placeholders;struct MyStruct{void add1(int a){cout << a << endl;}void add2(int a, int b){cout << a + b << endl;}void add3(int a, int b, int c){cout << a + b + c << endl;}
};int main(int *argc, int *argv[]){MyStruct s;auto func1 = bind(&MyStruct::add1, &s, _1);auto func2 = bind(&MyStruct::add2, &s, _1, _2);auto func3 = bind(&MyStruct::add3, &s, _1, _2, _3);func1(100);func2(1000, 2);func3(10, 200, 3);getchar();return 0;
}

C++笔记-空指针加强、auto自动类型相关推荐

  1. auto自动类型推断

    文章目录 1 auto 1 auto auto在C++11之前是自动变量的含义(栈变量,局部变量),在C++11后赋予其新的作用:自动类型推断. auto可以在声明变量的时候根据初始值的类型自动为此变 ...

  2. 《Effective Modern C++》翻译--条款2: 理解auto自动类型推导

    条款2: 理解auto自动类型推导 如果你已经读过条款1关于模板类型推导的内容,那么你几乎已经知道了关于auto类型推导的全部.至于为什么auto类型推导就是模板类型推导只有一个地方感到好奇.那是什么 ...

  3. C++知识整理系列(五)—— auto自动类型

    目录 一.概念 二.auto推导的类型 三.案例 迭代器iterator访问 函数返回值和参数为auto 四.总结 参考 一.概念 在C++11引入了auto类型说明符,其作用:编译器替我们去分析表达 ...

  4. C++11 auto自动类型推导

    1. auto类型推导 下面是auto的使用举例: auto x =5; //正确,x是int类型 auto pi = new auto(1); //正确,批是int* const auto* v = ...

  5. C++自动类型推导 : auto 与 decltype 用法

    基本用法与区别 auto 总是推导出"值类型",绝不会是"引用",如果有引用,auto会把引用去掉,推导出值类型: auto 可以附加上 const.volat ...

  6. C++中 auto自动变量,命名空间,using作用以及作用域

     1.auto关键字的用途 A:自动变量,可以自动获取类型,输出,类似泛型 B:自动变量,可以实现自动循环一维数组 C:自动循环的时候,对应的必须是常量 2.auto自动变量,自动匹配类型的案例如 ...

  7. 《流畅的python》学习笔记之python是什么类型的语言?

    讨论类型时,最好考虑两条不同的坐标线! 强类型和弱类型 如果一门语言很少隐式转换类型,说明它是强类型语言.如果经常这么做,说明它是弱类型语言.其中,java,c++和python是强类型语言,php, ...

  8. 【Groovy】Groovy 动态语言特性 ( Groovy 中函数实参自动类型推断 | 函数动态参数注意事项 )

    文章目录 前言 一.Groovy 中函数实参自动类型推断 二.函数动态参数注意事项 三.完整代码示例 前言 Groovy 是动态语言 , Java 是静态语言 ; 本篇博客讨论 Groovy 中 , ...

  9. 【Groovy】Groovy 动态语言特性 ( Groovy 中的变量自动类型推断以及动态调用 | Java 中必须为变量指定其类型 )

    文章目录 前言 一.Groovy 动态语言 二.Groovy 中的变量自动类型推断及动态调用 三.Java 中必须为变量指定其类型 前言 Groovy 是动态语言 , Java 是静态语言 ; 一.G ...

最新文章

  1. 【NCEPU】吴丹飞:(CSAPP)计算机系统漫游
  2. 从零开始玩转logback
  3. gcc-5.4.0 static dwarf2 compile
  4. Linux shell - 重命名文件和文件夹(mv)
  5. rabbitmq接口异常函数方法_[项目更新] 集成RabbitMQ队列与EventBus总线
  6. CACHECLOUDV1.0慢日志定时任务创建流程分析
  7. pycharm的安装及破解
  8. 3dmax:3dmax三维VR渲染设置(V-Ray帧缓存、V-Ray全局开关、V-Ray图像采样器、自适应细分采样器、V-Ray环境、全局确定性蒙特卡、摄像机、颜色贴图)之详细攻略(切记收藏!)
  9. uni-app 小程序跳转微信小程序及APP端(安卓/ios)
  10. 【2020/05/29 开庭】韦东山:闲鱼与盗版更配,坚决打击盗版,起诉到底绝不和解!
  11. apache与tomcat动静分离
  12. z-buffer算法
  13. typecho插件编写教程7 - Helper类
  14. 基于微信小程序的学习记录与提醒应用设计与实现-计算机毕业设计源码+LW文档
  15. 随机码生成器[10位字母+数字]
  16. 大聪明教你学Java | throw 和 throws 的区别你知道吗
  17. 2、Docker安装
  18. 生成世界地图并在地图上画圆圈
  19. 构建基于词典的Lucene分类器
  20. 二叉树的叶子结点按从左到右的顺序连成一个单链表

热门文章

  1. nginx安装ngx-pagespeed 不断出错啊
  2. 写好项目文档有多重要?关于我被百大 UP 主选中又放鸽子这档事
  3. 程序员结婚晚回家怕出轨吗?老婆:不怕,老公是写代码的,忙得很!
  4. C语言和其他语言的不得不说的差别!
  5. Java华丽转身 —— GUI编程宝典
  6. 2018年NLP技术学习总结
  7. 如何用C++来计算大数字乘法
  8. 是无数像老钟叔的p8u8
  9. I_LIKE_CPP 多特游戏下载
  10. 飞鸽传书FreeEIM买还是不买?